unordered_map如何找到所有重复元素
时间: 2023-10-28 07:02:14 浏览: 77
要找到`unordered_map`中的重复元素,你可以使用以下步骤:
1. 创建一个`unordered_map`,用于存储元素和它们的出现次数。
2. 遍历待处理的数据结构(例如数组或列表)并将元素插入到`unordered_map`中。如果元素已存在,则增加其对应的计数器。
3. 遍历`unordered_map`,找到计数器大于1的元素,这些元素即为重复元素。
以下是一个示例代码,演示了如何使用`unordered_map`来查找重复元素:
```cpp
#include <iostream>
#include <unordered_map>
#include <vector>
int main() {
std::vector<int> nums = {1, 2, 3, 4, 2, 3, 5, 4, 6, 7, 5};
std::unordered_map<int, int> countMap;
// 统计元素出现次数
for (const auto& num : nums) {
countMap[num]++;
}
// 打印重复元素
for (const auto& pair : countMap) {
if (pair.second > 1) {
std::cout << "重复元素: " << pair.first << std::endl;
}
}
return 0;
}
```
该示例中,`nums`是一个包含一些整数的向量。我们使用`unordered_map` `countMap`来跟踪每个元素的出现次数。然后,我们遍历`countMap`,找到计数大于1的元素,并将它们打印出来。在这个示例中,重复元素是2、3和4。
希望能帮到你!如果有任何疑问,请随时提问。
阅读全文