#include #include using namespace std; //自定义排序函数 bool SortByValueKey(const pair &v1, const pair &v2)//注意:本函数的参数的类型一定要与vector中元素的类型一致 { if (v1.second == v2.second) return v1.first < v2.first; return v1.second > v2.second; } int main() { //录入数据到vector数组 int n; cin >> n; unordered_map myMap; for (int i = 0; i < n; i++) { int c; cin >> c; myMap[c]++; } //保存到数组中 vector> vec; for (auto iter = myMap.begin(); iter != myMap.end(); ++iter) { vec.push_back(make_pair(iter->first, iter->second)); } //开始自定义排序 sort(vec.begin(), vec.end(), SortByValueKey); //输出结果 for (auto c : vec) { cout << c.first << " " << c.second << endl; } return 0; }