1. 程式人生 > 其它 >C++的資料型別操作 - set

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;