#include<iostream>
#include<map>
#include<vector>
using namespace std;
vector<int> findMax(int arrA[], int arrAsize, int cnt){
vector<int> res;
map<int,int> mp;
for (int i = 0; i < arrAsize; ++i) {
if (mp.find(arrA[i]) != mp.end()){
mp[arrA[i]]++;
} else{
mp[arrA[i]]=1;
}
}
//按照出现频率排序
multimap<int,int> multimp;
map<int,int>::iterator it;
for(it=mp.begin();it!=mp.end();it++){
multimp.insert(pair<int,int>(it->first,it->second));
}
for (auto it = multimp.begin(); it !=multimp.end() ; ++it) {
if ((it->second)>=cnt)
res.push_back(it->first);
}
return res;
}
int main(void)
{
//海量数据
int *pInt = new int[7];
pInt[0]=100;
pInt[1]=100;
pInt[2]=101;
pInt[3]=100;
pInt[4]=102;
pInt[5]=100;
pInt[6]=101;
const vector<int> &vector = findMax(pInt, 7, 2);
for (int i = 0; i < vector.size(); ++i) {
cout<<vector[i]<<endl;
}
}
