资讯动态

C++ 18:unordered_set unordered_multiset ——哈希集合

发布时间:2026/8/5 13:40:10 来源:尧图企业网站定制
unordered_set和unordered_multiset是基于哈希表实现的集合容器无序、查找速度极快平均 O (1)是处理快速查找、去重场景的首选容器。一、核心知识点1. 共性存储结构单值元素非键值对底层实现哈希表特点无序输出顺序不固定效率查找 / 插入 / 删除平均 O (1)最快头文件#include unordered_set2. 区别unordered_set元素唯一自动去重unordered_multiset元素可重复允许存储相同值二、常用操作函数操作功能insert(val)插入元素find(val)查找元素返回迭代器count(val)统计元素出现次数erase(val)删除指定元素size()获取元素个数empty()判断是否为空三、代码示例unordered_set自动去重#include iostream #include unordered_set using namespace std; int main() { // 1. 创建哈希集合 unordered_setint us; // 2. 插入元素 us.insert(5); us.insert(2); us.insert(8); us.insert(2); // 重复元素自动忽略 // 3. 遍历无序顺序随机 cout unordered_set遍历 endl; for (int x : us) { cout x ; } cout endl; // 4. 查找元素 if (us.find(5) ! us.end()) { cout 元素5存在 endl; } return 0; } //运行结果 unordered_set遍历 2 5 8 元素5存在四、代码示例unordered_multiset允许重复#include iostream #include unordered_set using namespace std; int main() { // 1. 创建可重复哈希集合 unordered_multisetint ums; // 2. 插入允许重复 ums.insert(3); ums.insert(1); ums.insert(3); ums.insert(3); // 3. 遍历无序、可重复 cout unordered_multiset遍历 endl; for (int x : ums) { cout x ; } cout endl; // 4. 统计元素次数 cout 元素3出现次数 ums.count(3) endl; return 0; } //运行结果 unordered_multiset遍历 1 3 3 3 元素3出现次数3五、总结unordered_set无序、自动去重、超快查找unordered_multiset无序、可重复、超快查找不保证顺序追求效率时优先使用平均时间复杂度远低于有序容器

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价