c++

c++中怎么用map统计数字

小亿
249
2023-11-05 02:16:26
栏目: 编程语言

在C++中,可以使用std::map来统计数字的出现次数。以下是一个使用std::map统计数字出现次数的示例代码:

#include <iostream>
#include <map>

int main() {
    std::map<int, int> numCount;
    
    int nums[] = {1, 2, 3, 4, 5, 1, 2, 3, 4, 1};
    int size = sizeof(nums) / sizeof(nums[0]);
    
    for (int i = 0; i < size; i++) {
        numCount[nums[i]]++;
    }
    
    for (auto it = numCount.begin(); it != numCount.end(); ++it) {
        std::cout << "Number " << it->first << " appears " << it->second << " times." << std::endl;
    }
    
    return 0;
}

在代码中,首先创建了一个std::map<int, int>对象numCount,用于保存数字和其出现次数的映射关系。

然后,定义了一个整型数组nums,用于存储待统计的数字序列。

接下来,使用for循环遍历数组nums,对每个数字进行统计。通过numCount[nums[i]]++操作,将数字nums[i]作为键,将其出现次数递增1作为值存储到numCount中。如果该数字已经存在于numCount中,将会自动递增其出现次数;如果该数字不存在于numCount中,将会在numCount中新增该数字并将其出现次数设置为1。

最后,使用另一个for循环遍历numCount,输出每个数字和其出现次数。it->first表示当前迭代器指向的键(即数字),it->second表示当前迭代器指向的值(即出现次数)。

输出结果如下:

Number 1 appears 3 times.
Number 2 appears 2 times.
Number 3 appears 2 times.
Number 4 appears 2 times.
Number 5 appears 1 times.

0
看了该问题的人还看了