一、核心区别容器存储结构用途unordered_setT只存值去重、快速判断元素是否存在unordered_mapK,V键值对 key→value计数、映射、存对应关系共同点哈希实现查找 O (1)内部无序二、unordered_set 常用函数unordered_setint s;1.插入s.insert(x); 插入元素自动去重2.查找高频s.count(x); 存在返回 1不存在返回 0auto it s.find(x); 找到返回迭代器没找到返回s.end()3.删除s.erase(x); 删除元素 xs.clear(); 清空全部4.大小 / 判空s.size(); 元素个数s.empty(); 是否为空5.遍历for(auto x : s) {}三、unordered_map 常用函数unordered_mapchar, int mp;1.插入 / 赋值2 种mp[key] val; 最常用key 不存在则自动创建mp.insert({key, val}); 插入键值对2.查找高频mp.count(key); 判断 key 是否存在返回 0/1auto it mp.find(key); 找 key 的迭代器3.取值mp[key]; 直接取 valuekey 不存在会默认创建it-first 取 keyit-second 取 value4.删除mp.erase(key); 删除对应键值对mp.clear(); 清空5.大小 / 判空mp.size();mp.empty();6.遍历for(auto p : mp) { p.first; p.second; }四、刷题核心口诀只查有没有、去重 → 用 unordered_set需要计数、存对应关系 → 用 unordered_mapcount 只能返回 0/1unordered_map 统计次数直接用mp[key]两者都无序不能依赖遍历顺序查找优先用count取值优先用[]