c++如何计算数组单个元素的重复个数
时间: 2024-12-29 16:33:55 浏览: 52
在C++中,要计算数组中单个元素的重复个数,可以采用哈希表(如`std::unordered_map`)或者直接遍历数组的方式。这里我们提供两种常见的方法:
1. **使用哈希表**:
首先创建一个空的`unordered_map`,然后遍历数组,对于每个元素,如果它不在映射中,添加到映射并设置计数为1;如果已经在映射中,则增加对应的计数值。最后,映射中的值即为对应元素的重复次数。
```cpp
#include <unordered_map>
int countDuplicates(int arr[], int n) {
std::unordered_map<int, int> map;
for (int i = 0; i < n; ++i) {
if (map.find(arr[i]) == map.end()) {
map[arr[i]] = 1;
} else {
map[arr[i]]++;
}
}
return map.size(); // 返回唯一元素的数量,重复元素的个数就是总元素数减去这个值
}
```
2. **暴力搜索**:
如果数据量不大,也可以简单地遍历一次数组,记录下当前元素是否已经遇到过,未遇到就初始化计数器,遇到则加一。这种方法效率较低,适用于小规模的数据。
```cpp
int countDuplicates(int arr[], int n) {
bool seen[n];
memset(seen, false, sizeof(seen));
int duplicates = 0;
for (int i = 0; i < n; ++i) {
if (seen[arr[i]]) {
duplicates++;
} else {
seen[arr[i]] = true;
}
}
return duplicates;
}
```
阅读全文
相关推荐


















