特点:快速查找,不允许重复值
特性:确定性,互异性,有序性
#include<iostream>
#include<set>
using namespace std;
template<typename T>
void PrintContainer(const T& c){
for(int n:c){
cout << n << " ";
}
cout << endl;
}
int main(){
//1.有序性,去重性
set<int> s = {1,4,7,8,3,2,2,1};
PrintContainer(s);
//输出:1,2,3,4,7,8
//2.也能用迭代器遍历set
set<int>::iterator it = s.begin();
while(it != s.end()){
cout << *it++ << " ";
}
cout << endl;
//3.插入数据
s.insert(5);
PrintContainer(s);//不能再加已经有了的
s.insert(s.begin(),100);//就算在开头插入数字,也会自动排序
PrintContainer(s);
//4.删除数据
s.erase(5);
PrintContainer(s);
s.erase(s.begin());
PrintContainer(s);
//5.查找
cout << s.count(100) << endl;//判断有没有100,没有的话输出0
cout << (s.find(100) !=s.end()) << endl;
}
例题:
448. 找到所有数组中消失的数字 - 力扣(LeetCode) (leetcode-cn.com)
217. 存在重复元素 - 力扣(LeetCode) (leetcode-cn.com)