何が起こっているのかわかりません。マップを反復処理する 2 番目の for ループに関するエラーが発生しています。この単純なプログラムは、配列の最も一般的な要素を見つけるものだと思いました。
#include <iostream>
#include <map>
int mode(int* arr, int sz) {
std::map<int,int> M;
for (int i = 0; i < sz; i++) {
if (M.count(arr[i]) == 0) {
M[arr[i]] = 1;
} else {
M[arr[i]]++;
}
}
int largest = arr[0]
for (std::map<int,int>::iterator it = M.begin(); it != M.end(); it++) {
if (it->first > largest) {
largest = it->first;
}
}
return largest;
}
int main() {
int myArray[] = {1, 2, 5, 0, 10, 4, -4, 10, 69, 10, 4, 4, 4};
std::cout << "Mode = " << mode(myArray, sizeof(myArray)/sizeof(int));
return 0;
}