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