這裏是代碼地圖操作(找到最occurence元素)
#include <iostream>
#include <map>
using namespace std;
int main(){
map<int ,int>a;
map<int,int>::iterator it;
int b[]={2,4,3,5,2,6,6,3,6,4};
for (int i=0;i<(sizeof(b)/sizeof(b[0]));i++){
++a[b[i]];
}
// for (it=a.begin();it!=a.end();it++){
// cout<<(*it).first<<" =>"<<(*it).second<<"\n";
//}
int max=a.begin()->second;
for (it=a.begin();it!=a.end();it++){
if ((*it).second>max){
max=(*it).second;
}
}
for (it!=a.begin();it!=a.end();it++){
if ((*it).second==max){
cout<<(*it).first<<"\n";
}
}
return 0;
}
我試圖根據每個鍵的occurence數以下我希望它打印的最經常發生在這種情況下,6,但卻元素不顯示我導致什麼錯誤?
一個提示是不要在一個函數中重用變量用於不同的目的。那會早早發現這個問題。如果類型名稱太大,會發現它阻礙了可讀性,請使用'typedef'。 'typedef map :: iterator MapIt;爲(MapIt it = ...)' –
Stephen
2010-07-21 16:49:47