用std::unordered_map统计频次最直接,本质是筛选出现次数>1的元素;需先完整遍历建表再遍历map筛选,避免边遍历边跳过导致漏检。

用 std::unordered_map 统计频次最直接
重复元素的本质是「出现次数 > 1」,所以先数清楚每个值出现了几次,再筛出来就行。std::unordered_map 插入和查询平均 O(1),比 std::map 的 O(log n) 更适合这类统计场景。
常见错误是遍历数组时只检查 count() == 1 就跳过,结果漏掉后续重复项;正确做法是完整扫一遍数组建好表,再单独遍历 map 找 value > 1 的 key。
- 记得包含头文件:
#include - 如果数组元素是自定义类型,得提供哈希函数和
==重载,基础类型(int、char等)不用管 - 输出顺序不确定——
unordered_map不保序,需要排序就额外存到vector里再std::sort
std::sort
C++免费学习笔记(深入):立即使用
在学习笔记中,你将探索 C++ 的入门与实战技巧!











