对C++ STL中的set的使用做了简单的整理。
-
调用与声明
#include<set> using namespace std; set<int> myset;//生成int数据的集合,默认以升序排列
-
常用操作
加入新元素:
myset.insert(x);
移除元素:
myset.erase(x);//返回0或1,0表示set中不存在x
清空集合:
myset.clear();
判断集合是否为空:
myset.empty();//空则为1,非空则为0
集合中的元素个数:
myset.size();
查找元素:
myset.find(x);//查找x,返回x的迭代器,若x不存在,则返回指向myset尾部的迭代器即 myset.end() /*常与myset.end()进行判断*/ if(myset.find(x)==myset.end()) { ... }
一些迭代器方法:
myset.lower_bound(x); //返回一个迭代器,指向第一个键值不小于x的元素 myset.upper_bound(x); //返回一个迭代器,指向第一个键值大于x的元素 myset.rend(); //返回第一个元素的的前一个元素迭代器 myset.begin(); //返回指向集合中第一个元素的迭代器 myset.end(); //返回指向集合最后一个元素下一个位置的迭代器 myset.rbegin(); //返回最后一个元素
-
set的遍历
set<int>::iterator i; for( i=myset.begin();i!=myset.end();i++) cout<<*i<<" "; cout<<endl;
-
降序set的实现
set<int,greater<int>> myset; //降序排列