1.默认的pair排序sort是按照first的值排序
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
typedef pair<int, int > PII;
vector<PII> vs;
int main()
{
vs.push_back({3, 4});
vs.push_back({1, 2});
vs.push_back({5, 7});
sort(vs.begin(), vs.end());
for(auto v : vs) cout << v.first << endl;
}
运行结果:
2.自定义排序sort的方式,比如按照 first + second 的和进行降序排序
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
typedef pair<int, int > PII;
vector<PII> vs;
bool cmp(pair<int, int> a, pair<int, int>b)
{
return a.first + a.second > b.first + b.second;
}
int main()
{
vs.push_back({3, 4});
vs.push_back({1, 2});
vs.push_back({5, 7});
sort(vs.begin(), vs.end(), cmp);
for(auto v : vs) cout << v.first + v.second << endl;
}
运行结果: