这里是代码地图操作(找到最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