例如:输入要输入的n个整数
输入:12
5 2 3 3 1 3 4 2 5 2 3 5
输出:
3 4
2 3
5 3
1 1
4 1

#include <bits/stdc++.h>
using namespace std;

struct Elem{
int k; // 整数
int v; // 该整数出现的次数
bool operator<(const Elem &em){
bool result;
if(em.k == k)
result = em.k > k; // 次数相同,k小的排列在前面
else
result = em.v < v; // 次数不同,v大的排列在前面
return result;
}
};
int main(){

int n;
cin >> n;
map<int, int>mymap; //键值一一对应,key不能重复
map<int, int>::iterator it;
vector<Elem>myv;
for(int i =0; i < n;i ++){
int num;
cin >> num;
++mymap[num]; // 统计num出现的次数
}
for(it = mymap.begin();it != mymap.end();it ++){
Elem em;
em.k = it->first;
em.v = it->second;
myv.push_back(em);
}
sort(myv.begin(), myv.end()); // myv中的元素排序
for(int i = 0;i < myv.size();i ++){
cout << myv[i].k << " "<< myv[i].v <<endl;
}
}