集合set
- 头文件<set>
- set是一个不包含重复元素的有序集合
- set<int>s;
- 方法
- s.begin();——返回第一个元素
- s.end();——返回最后一个元素
- s.empty();——返回是否为空
- s.size();——返回当前set大小
- 插入
- s.insert(a); //set中只能通过这种方法插入
- 删除
- s.clear();——清空
- s.erase(k);——k为其中某个键值
- s.erase(p);——p为一个迭代器
- s.erase(b,e);——b,e为两个迭代器
- 查找
- 同之前的map类似有两种
- s.count(k);——存在则为1,不存在则为0
- s.find(k);——返回k的迭代器
- s.lower_bound(k);——返回第一个大于等于k的迭代器
- s.upper_bound(k);——返回打一个小于等于k的迭代器
- 遍历
- (1)迭代器
- (2)for(auto)
- (3)for_each
- 可重载运算符定义排序规则
-
#include<set> #include<iostream> using namespace std; struct cmp{ bool operator()(string &a, string &b){ return a[1] < b[1]; } }; struct node{ int x,y; friend bool operator < (node a, node b){ return a.x + a.y < b.x + b.y; } }; int main(){ set<int>s1; //从小到大 set<int,greater<int> >s2; //从大到小 set<string,cmp>s3 //自定义 set<node>s4; //重载 return 0; }
原文链接: https://www.cnblogs.com/Cmathe/p/12263243.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/327242
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!