在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.