C++实现众数
以下是一个C++实现众数的示例代码:
cpp
#include <iostream>
#include <vector>
#include <unordered_map>
// 计算众数
int findMode(std::vector<int>& nums) {
std::unordered_map<int, int> countMap;
int maxCount = 0;
int mode = 0;
for (int num : nums) {
countMap[num]++;
if (countMap[num] > maxCount) {
maxCount = countMap[num];
mode = num;
}
}
return mode;
}
int main() {
std::vector<int> nums = {1, 2, 3, 2, 2, 4, 5, 2, 6, 2};
int mode = findMode(nums);
std::cout << "Mode: " << mode << std::endl;
return 0;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
在上述示例代码中,我们定义了一个名为findMode
的函数,它接受一个整数向量作为参数,并返回向量中的众数。
在函数内部,我们使用一个无序映射countMap
来记录每个数字的出现次数。我们遍历整数向量中的每个数字,将其作为键并递增相应的值。
同时,我们使用maxCount
和mode
变量来跟踪出现次数最多的数字及其出现次数。如果遍历过程中发现某个数字的出现次数超过了当前的最大次数,我们更新maxCount
和mode
。
最后,我们返回众数mode
。
在主函数中,我们创建一个整数向量nums
并初始化它。然后,我们调用findMode
函数计算众数,并将结果打印到控制台。
请注意,上述示例代码只是一个简单的示例,用于演示如何计算众数。在实际应用中,可能需要处理更复杂的情况,例如多个众数、众数不存在等。此外,代码中没有进行错误处理,实际应用中需要根据需求进行适当的修改和增强。
该博文为原创文章,未经博主同意不得转载。
本文章博客地址:https://cplusplus./article/details/131377754