当前位置 博文首页 > 小李的博客:C++ STL Set常用用法详解
? 是一个内部自动有序且不含重复元素的容器。 要使用set,需要加头文件#include
? set<typenname> name;
? 其中typename可以是任何基本类型,例如int、double、char、结构体等,也可以是STL标准容器,例如vector、set、queue等
? set<typename>::iterator it;
? 注:set只能通过迭代器访问。且除vector和string之外的STL容器都不支持* (it+i)的访问方式
#include <bits/stdc++.h>
#include <set>
using namespace std;
int main(){
set<int> s;
s.insert(3);
s.insert(3);
s.insert(1);
s.insert(5);
//注意这里是it != s.end()
for(set<int>::iterator it = s.begin(); it != s.end(); it++){
cout<<(*it)<<' ';
}
return 0;
}
输出结果:
1 3 5
? set主要作用就是自动去重并按升序排序,因此碰到需要去重但是却不方便直接开数组的情况,可以尝试用set解决
// 5、Set集合
#include <bits/stdc++.h>
#include <set>
using namespace std;
int main(){
set<int> s;
s.insert(1); //插入一个元素
s.insert(2);
s.insert(3);
cout<<"集合的个数:"<<s.size()<<endl;
if(s.find(2) != s.end()){ //返回set中对应值为value的迭代器
cout<<"集合中有2这个元素"<<endl;
} else{
cout<<"集合中没有2这个元素"<<endl;
}
s.erase(1); //在集合Set容器中删除这个值
if(s.find(1) != s.end()){ //返回set中对应值为value的迭代器
cout<<"集合中有1这个元素"<<endl;
} else{
cout<<"集合中没有1这个元素"<<endl;
}
return 0;
}
cs集合的个数:3
集合中有2这个元素
集合中没有1这个元素