std::set是关联容器的一种,是含有键值key类型对象的已排序集。可以用比较函数进行排序。
搜索、移除和插入拥有对数复杂度。

常用操作

  1. 插入一个数据

    1. #include <bits/stdc++.h>
    2. using namespace std;
    3. int main(){
    4. set<int> s;
    5. cout << s.size() << endl;
    6. s.insert(2);
    7. cout << s.size() << endl;
    8. system("pause");
    9. return 0;
    10. }
  2. 插入一串数据

    1. #include <bits/stdc++.h>
    2. using namespace std;
    3. int main(){
    4. set<int> s;
    5. cout << s.size() << endl;
    6. s.insert({1,2,3});
    7. cout << s.size() << endl;
    8. system("pause");
    9. return 0;
    10. }

  3. 删除指定的一个元素

    1. #include <bits/stdc++.h>
    2. using namespace std;
    3. int main(){
    4. set<int> s{1,2,3,4};
    5. s.erase(2); // 删除元素2
    6. for(auto num : s){
    7. cout << num << " ";
    8. }
    9. system("pause");
    10. return 0;
    11. }

  4. find() 返回一个对应查找值的迭代器。如果没找到就返回指向set尾部的迭代器

    1. #include <bits/stdc++.h>
    2. using namespace std;
    3. int main(){
    4. set<int> s{1,2,2,2,3,3,4};
    5. set<int>::iterator it = s.find(8);
    6. if(it != s.end()){
    7. cout << "yes" << endl;
    8. }else{
    9. cout << "no" << endl;
    10. }
    11. system("pause");
    12. return 0;
    13. }