C++的資料型別操作 - set
阿新 • • 發佈:2021-12-21
使用C++做演算法題時,與set相關的常用操作:
C++的set底層使用紅黑樹對key進行排序。unordered_set底層使用雜湊表儲存,所以key無序。
標頭檔案 | #include < set > |
建立 | set |
建立 | set |
插入 | 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;