C++的数据类型操作 - set
使用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;

浙公网安备 33010602011771号