zoukankan      html  css  js  c++  java
  • C++之路起航——标准模板库(set)

        set(集合):http://baike.baidu.com/link?url=cb68AB-3qfEK8RoaGHJFClb4ZiWpJfc32lPOLtaNUrdxntFC738zCZsCiUlfAVRLds2aeNkgYCYCe_wdVB2TIa

        需要包括头文件<set>;

          定义:

               set<数据类型> 变量名;

           Eg:

               set<int> s;//定义了一个整型的集合s;

          基本操作(红色标识为常用操作): 

            s.begin() 返回指向第一个元素的迭代器

            s.clear() 清除所有元素

            s. count() 返回某个值元素的个数

            s.empty() 如果集合为空,返回true

            s.end() 返回指向最后一个元素的下一个迭代器

            s.equal_range() 返回集合中与给定值相等的上下限的两个迭代器

            s.erase() 删除集合中的元素

            s.find() 返回一个指向被查找到元素的迭代器//不太会用,据说为常用算法,下面代码解释中未提到该函数。

            s.get_allocator() 返回集合的分配器

            s.insert() 在集合中插入元素

            s.lower_bound() 返回指向大于(或等于)某值的第一个元素的迭代器

            s.key_comp() 返回一个用于元素间值比较的函数

            s.max_size() 返回集合能容纳的元素的最大限值

            s.rbegin() 返回指向集合中最后一个元素的反向迭代器

            s.rend() 返回指向集合中第一个元素的反向迭代器

            s.size() 集合中元素的数目

            swap() 交换两个集合变量

            s.upper_bound() 返回大于某个值元素的迭代器

            s.value_comp() 返回一个用于比较元素间的值的函数

         代码解释(为服务广大初学者,以后代码解释加汉语提示操作,不懂粘代码自己运行):

    #include<set>
    #include<cstdio>
    #include<string>
    #include<iostream>

    using namespace std;

    int main()
    {
    set<string> strset;//定义了一个为字符串型的集合strset;
    strset.insert("a");//添加元素a;
    strset.insert("b");//添加元素b;
    strset.insert("c");//添加元素c;
    strset.insert("d");//添加元素d;
    strset.insert("a");//再添加元素a;
    cout<<"集合基本操作:"<<endl;
    cout<<"集合是否为空:";
    if (strset.empty()) printf("YES ");
    else printf("NO ");
    set<string>::iterator ator=strset.begin();
    cout<<"集合遍历:"<<endl;
    for(;ator!=strset.end();ator++)
    cout<<*ator<<endl;
    cout<<"集合中a的个数:" ;
    cout<<strset.count("a")<<endl;
    cout<<"集合中z的个数:" ;
    cout<<strset.count("z")<<endl;
    string a;
    cout<<"集合判重操作:"<<endl;
    cin>>a;
    if (strset.count(a)==1) printf("chong ");//判断元素是否重。
    else printf("buchong ");
    cout<<"集合去重操作:"<<endl;
    cin>>a;
    if (strset.count(a)==1) strset.erase(a);//将重元素去除。
    ator=strset.begin();
    cout<<"集合遍历:"<<endl;
    for(;ator!=strset.end();ator++)
    cout<<*ator<<endl;
    cout<<"集合中元素个数:" ;
    cout<<strset.size()<<endl;
    cout<<"集合清0操作:"<<endl;
    strset.clear();//清0;
    cout<<"集合是否为空:";
    if (strset.empty()/*判空*/) printf("YES ");
    else printf("NO ");
    return 0;
    }

  • 相关阅读:
    SVN库迁移整理方法----官方推荐方式
    SVN跨版本库迁移目录并保留提交日志
    微信公众号 发送图文消息
    Egret白鹭开发微信小游戏排行榜功能
    双滑动列表实现
    unity之资深工程师
    unity之高级工程师
    lua踩坑系列之浅拷贝与深拷贝
    lua之table.remove你不知道的坑
    unity之Layout Group居中显示
  • 原文地址:https://www.cnblogs.com/grhyxzc/p/5073876.html
Copyright © 2011-2022 走看看