STL— set

转自:https://www.cnblogs.com/xenny/p/9362743.html

https://www.cnblogs.com/isChenJY/p/11535335.html

1,首先Set遵循数学集合三特性,无重复、无序性、确定性

Set中内置红黑树进行排序,所以插入删除效率很高。

2,基操

int a[] = {1,2,3,4,5};
    set<int>q;
    
    q.insert(x);      //集合中插入元素
    q.insert(a,a+5);  //插入数组a至a+5的元素
    q.find(x);        //返回x值位置的迭代器,找不到返回q.end()  
    q.erase(iter);    //删除集合中的元素
    q.size();         //返回当前set容器中的元素个数
    q.count();        //返回某个值元素的个数(根据set的特性,就是判断这个元素在不在,返回0或1)
    q.begin();        //返回头位置迭代器
    q.end();          //返回尾位置迭代器

    q.rbegin();       //返回尾部反向迭代器
    q.rend();         //返回头部反向迭代器
    q.clear();        //删除set容器中的所有的元素
    q.empty();        //判断set容器是否为空
    q.lower_bound();  //返回指向大于(或等于)某值的第一个元素的迭代器
    q.upper_bound();  //返回大于某个值元素的迭代器

 4,函数

 insert(x):可将 x 插入 set 容器中,并自动递增排序和去重,时间复杂度O(logN) 

扫描二维码关注公众号,回复: 10326868 查看本文章

3,排序

struct cmp{
        bool operator() (const node &a,const node &b){
            return a.x < b.x;
        }
    };
    
    set<node,cmp>q;

========= ======== ======== ======= ====== ====== ==== === == =

定风波  苏轼 宋

三月七日,沙湖道中遇雨。雨具先去,同行皆狼狈,余独不觉。已而遂晴,故作此词。

莫听穿林打叶声,何妨吟啸且徐行。竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生。
料峭春风吹酒醒,微冷,山头斜照却相迎。回首向来萧瑟处,归去,也无风雨也无晴

猜你喜欢

转载自www.cnblogs.com/asdfknjhu/p/12602563.html