优先队列对pair的自定义排序
#include<iostream>
#include<queue>
using namespace std;
struct cmp{
bool operator() (pair<int,int> a,pair<int,int> b) {
return a.second<b.second;
}
};
int main(){
priority_queue<pair<int,int>,vector< pair<int,int> >,cmp> q;
for (int i=0;i<5;i++) {
pair<int,int> temp;
int a,b;
cin>>a>>b;
temp.first = a;
temp.second = b;
q.push(temp);
}
for (int i=0;i<5;i++) {
pair<int,int> temp;
temp = q.top();
cout<<temp.first<<" "<<temp.second<<endl;
q.pop();
}
return 0;
}
sort 对pair 的自定义排序
#include<iostream>
#include<vector>
using namespace std;
bool cmp(pair<int,int> a,pair<int,int> b) {
return a.second<b.second;
}
int main(){
vector<pair<int,int> > v;
int a,b;
for (int i=0;i<5;i++) {
pair<int ,int> temp;
cin>>a>>b;
temp.first = a;
temp.second = b;
v.push_back(temp);
}
sort(v.begin(),v.end(),cmp);
for (int i=0;i<5;i++) {
cout<<v[i].first<<" "<<v[i].second<<endl;
}
return 0;
}