我需要统计双精度型数组中数字的出现次数,请给我一个答案
时间: 2024-04-17 18:26:13 浏览: 10
好的,以下是一个用于统计双精度型数组中数字出现次数的示例代码:
```cpp
#include <iostream>
#include <unordered_map>
#include <vector>
std::unordered_map<double, int> countOccurrences(const std::vector<double>& arr) {
std::unordered_map<double, int> occurrences;
// 遍历数组
for (double num : arr) {
// 如果数字已经在哈希表中,则将其计数加1
if (occurrences.find(num) != occurrences.end()) {
occurrences[num]++;
// 否则,将数字添加到哈希表中,并初始化计数为1
} else {
occurrences[num] = 1;
}
}
return occurrences;
}
int main() {
std::vector<double> arr = {1.1, 2.2, 3.3, 2.2, 1.1, 4.4, 5.5, 4.4};
std::unordered_map<double, int> result = countOccurrences(arr);
// 打印结果
for (const auto& pair : result) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
return 0;
}
```
这个示例代码使用了一个 `unordered_map`(无序映射)来记录每个数字出现的次数。你可以在 `main` 函数中传入你想要统计的双精度型数组,并打印结果以验证输出。