C++实现众数(附完整源码)

时间:2024-11-22 15:54:46

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来记录每个数字的出现次数。我们遍历整数向量中的每个数字,将其作为键并递增相应的值。

同时,我们使用maxCountmode变量来跟踪出现次数最多的数字及其出现次数。如果遍历过程中发现某个数字的出现次数超过了当前的最大次数,我们更新maxCountmode

最后,我们返回众数mode

在主函数中,我们创建一个整数向量nums并初始化它。然后,我们调用findMode函数计算众数,并将结果打印到控制台。

请注意,上述示例代码只是一个简单的示例,用于演示如何计算众数。在实际应用中,可能需要处理更复杂的情况,例如多个众数、众数不存在等。此外,代码中没有进行错误处理,实际应用中需要根据需求进行适当的修改和增强。

该博文为原创文章,未经博主同意不得转载。
本文章博客地址:https://cplusplus./article/details/131377754