用c++遍历一维数组并以值和重复次数存为map
时间: 2024-02-25 07:52:07 浏览: 16
好的,以下是用 C++ 代码实现遍历一维数组并以值和重复次数存为 map 的方法:
```c++
#include <iostream>
#include <map>
using namespace std;
int main() {
int arr[] = {1, 2, 3, 3, 4, 4, 4, 5, 5, 5, 5};
int n = sizeof(arr) / sizeof(arr[0]);
map<int, int> mp;
for(int i=0; i<n; i++) {
if(mp.find(arr[i]) == mp.end()) { // 如果 map 中不存在该元素,则插入该元素并将重复次数设为 1
mp.insert({arr[i], 1});
}
else { // 如果 map 中已存在该元素,则将重复次数加 1
mp[arr[i]]++;
}
}
for(auto it=mp.begin(); it!=mp.end(); it++) { // 遍历 map 并输出每个元素的值和重复次数
cout << it->first << " appears " << it->second << " times" << endl;
}
return 0;
}
```
在上述代码中,我们首先定义了一个一维数组 `arr`,然后使用 `map<int, int>` 定义了一个名为 `mp` 的 map,用于存储数组中每个元素的值和重复次数。接着我们使用一个 for 循环遍历数组中的每个元素,如果该元素不存在于 map 中,则插入该元素并将重复次数设为 1;如果该元素已经存在于 map 中,则将重复次数加 1。最后我们再次使用一个 for 循环遍历 map 并输出每个元素的值和重复次数。
希望这个代码能够解决你的问题!