std::set
是关联容器的一种,是含有键值key
类型对象的已排序集。可以用比较函数进行排序。
搜索、移除和插入拥有对数复杂度。
常用操作
增
插入一个数据
#include <bits/stdc++.h>
using namespace std;
int main(){
set<int> s;
cout << s.size() << endl;
s.insert(2);
cout << s.size() << endl;
system("pause");
return 0;
}
插入一串数据
#include <bits/stdc++.h>
using namespace std;
int main(){
set<int> s;
cout << s.size() << endl;
s.insert({1,2,3});
cout << s.size() << endl;
system("pause");
return 0;
}
删
删除指定的一个元素
#include <bits/stdc++.h>
using namespace std;
int main(){
set<int> s{1,2,3,4};
s.erase(2); // 删除元素2
for(auto num : s){
cout << num << " ";
}
system("pause");
return 0;
}
查
find()
返回一个对应查找值的迭代器。如果没找到就返回指向set
尾部的迭代器#include <bits/stdc++.h>
using namespace std;
int main(){
set<int> s{1,2,2,2,3,3,4};
set<int>::iterator it = s.find(8);
if(it != s.end()){
cout << "yes" << endl;
}else{
cout << "no" << endl;
}
system("pause");
return 0;
}