在c中排序一对矢量
作者:互联网
#include "bits/stdc++.h"
using namespace std;
int main()
{
int i,j;
vector< pair<int,int> > v;
v.push_back(make_pair(4,2));
v.push_back(make_pair(1,3));
v.push_back(make_pair(5,4));
sort(v.begin(), v.end());
for(i=0;i<v.size();i++)
cout<<v[i].first<<" "<<v[i].second<<endl;
}
上面代码的输出是—
1 3
4 2
5 4
我们可以从输出中看到sort函数已经对v [i] .first进行了排序,但是如果我们只想对v [i] .second进行排序,或者如果我们想要对它们进行排序,那么如何完成任务呢?
解决方法:
指定自定义比较器.在C 14中,它可以非常简洁地完成:
sort(v.begin(), v.end(), [](const auto& x, const auto& y){return x.second < y.second;});
标签:std-pair,c,sorting,vector 来源: https://codeday.me/bug/20190728/1560717.html