代码如下:
#include <bits/stdc++.h>
using namespace std;
void p_sort(vector< pair<int, int> > &p){
int n = p.size();
for(int i = 0; i < n; i++){
for(int j = 0; j < n - i - 1; j++){
if(p[j].second < p[j+1].second){
swap(p[j], p[j+1]);
}
}
}
}
//数字排序
int main(){
int n;
cin >> n;
vector<int> v(n);
for(int i = 0; i < n; i++){
cin >> v[i];
}
sort(v.begin(), v.end());
vector< pair<int, int> > m;
for(int i = 0; i < n; i++){
int num = 1;
while(i < n && v[i] == v[i+1]){
num++;
i++;
}
m.push_back(pair<int, int>(v[i], num));
}
p_sort(m);
for(int i = 0; i < m.size(); i++){
cout << m[i].first << " " << m[i].second << endl;
}
return 0;
}
排序传vector参数时一定要记得加引用&。