-4

何が起こっているのかわかりません。マップを反復処理する 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;

}
4

2 に答える 2

7

セミコロン「;」がありません

int largest = arr[0]
                    ^
于 2013-11-05T23:34:01.550 に答える
3

追加する必要があります。前の行の最後に:

int largest = arr[0];
于 2013-11-05T23:35:20.040 に答える