C++的数据类型操作 - set

使用C++做算法题时,与set相关的常用操作:

C++的set底层使用红黑树对key进行排序。unordered_set底层使用哈希表存储,所以key无序。

头文件 #include < set >
创建 set set;
创建 set set(v.begin(), v.end());//根据其他容器内容创建
插入 set.insert(x);
插入 set.insert(v.begin(),v.end());
删除元素x set.erase(x);
大小 set.size();
是否为空 set.empty();
第一个元素的迭代器 set.begin();
最后一个元素下一个元素迭代器 set.end();
是否存在 set.find(x); // 存在则返回对应位置迭代器,否则返回迭代器s.end()

排序集合

struct cmp{
  bool operator()(const pair<int, int>& p1, const pair<int, int>&p2) const{
    if(p1.first == p2.first) // 先根据pair.first降序,再根据pair.second升序
      return p1.second < p2.second;
    else
      return p1.first > p2.first;
  }
};
set<pair<int, int>, cmp) set; 
posted @ 2021-12-21 10:06  子于舟  阅读(108)  评论(0)    收藏  举报