STL set的用法
要使用set需要事先引入一个头文件
#include<set>set是一个不允许重复的集合,如果要重复可以使用multiset。
1.set的插入【set.insert();】,会返回Pair<iterator,bool>对象,前一个是插入的位置,后一个是是否插入成功。
#include<cstdio> #include<set> using namespace std; set<int> Demo; int main(){ pair<set<int>::iterator,bool> DemoPair=Demo.insert(1); printf("Insert %d\n",*DemoPair.first); printf(DemoPair.second==true?"Succeed\n":"Failed\n"); DemoPair=Demo.insert(1); printf("Insert %d\n",*DemoPair.first); printf(DemoPair.second==true?"Succeed\n":"Failed\n"); return 0; }运行结果:
两次插入1,第一次成功,第二次失败,是因为集合的唯一性。
2.set的查找【set.find();】,返回的是iterator为查找对象位置,如果是set.end(),则表示未找到。
#include<cstdio> #include<set> using namespace std; set<int> Demo; int main(){ Demo.insert(1); set<int>::iterator it=Demo.find(1); if (it==Demo.end()){ printf("No Find\n"); }else{ printf("Find\n"); } return 0; }运行结果:
3.set的遍历
#include<cstdio> #include<set> using namespace std; set<int> Demo; int main(){ Demo.insert(5); Demo.insert(3); Demo.insert(4); Demo.insert(1); Demo.insert(2); for (set<int>::iterator it=Demo.begin();it!=Demo.end();it++){ printf("%d ",*it); } return 0; }运行结果: