set和multiset是自动排序的集合容器底层是红黑树查找极快。一、核心知识点set自动升序排序自动去重相同元素只能存一个头文件#include setmultiset自动升序排序允许重复可存多个相同值二、常用操作insert(x)插入erase(x)删除值为 x 的所有元素find(x)查找返回迭代器count(x)统计 x 出现次数size()大小empty()是否为空遍历用迭代器三、set 极简示例自动去重 排序#include iostream #include set using namespace std; int main() { setint s; // 插入 s.insert(3); s.insert(1); s.insert(2); s.insert(3); // 重复自动忽略 // 遍历自动排序1 2 3 for (int x : s) { cout x ; } return 0; } //输出 1 2 3四、multiset 极简示例允许重复 排序#include iostream #include set using namespace std; int main() { multisetint ms; ms.insert(3); ms.insert(1); ms.insert(3); // 可重复 ms.insert(2); // 遍历1 2 3 3 for (int x : ms) { cout x ; } return 0; } //输出 1 2 3 3五、set /multiset 对比总结容器排序重复查找速度set自动升序不允许O(log n)multiset自动升序允许O(log n)六、终极精炼总结set有序 去重multiset有序 可重复插入自动排序查找非常快遍历用范围 for 或迭代器头文件都是#include set
C++ 16:set /multiset 集合 —— 自动排序 + 去重 / 不去重
发布时间:2026/5/16 1:47:51
set和multiset是自动排序的集合容器底层是红黑树查找极快。一、核心知识点set自动升序排序自动去重相同元素只能存一个头文件#include setmultiset自动升序排序允许重复可存多个相同值二、常用操作insert(x)插入erase(x)删除值为 x 的所有元素find(x)查找返回迭代器count(x)统计 x 出现次数size()大小empty()是否为空遍历用迭代器三、set 极简示例自动去重 排序#include iostream #include set using namespace std; int main() { setint s; // 插入 s.insert(3); s.insert(1); s.insert(2); s.insert(3); // 重复自动忽略 // 遍历自动排序1 2 3 for (int x : s) { cout x ; } return 0; } //输出 1 2 3四、multiset 极简示例允许重复 排序#include iostream #include set using namespace std; int main() { multisetint ms; ms.insert(3); ms.insert(1); ms.insert(3); // 可重复 ms.insert(2); // 遍历1 2 3 3 for (int x : ms) { cout x ; } return 0; } //输出 1 2 3 3五、set /multiset 对比总结容器排序重复查找速度set自动升序不允许O(log n)multiset自动升序允许O(log n)六、终极精炼总结set有序 去重multiset有序 可重复插入自动排序查找非常快遍历用范围 for 或迭代器头文件都是#include set