重写快排sort函数

it2025-12-30  8

#include <utility> vector<pair<int,int>> vmap; for(auto it=map.begin();it!=map.end();it++){ vmap.push_back(make_pair(it->first,it->second)); } sort(vmap.begin(),vmap.end(),[](const pair<int,int> &x,const pair<int,int> &y) ->int{ if(x.second==y.second){ return x.first>y.first; } else return x.second<y.second; }); /* 如果你要从大到小进行排序,那么只用在全局添加一个cmp函数,之后在sort函数中把第三个参数写成cmp,就没有问题了。 bool cmp(int x, int y) { return x > y; } sort函数改法:sort(a , a + n, cmp) */ bool judge(const pair<int,char> a, const pair<int ,char> b) { return a.first<b.first; } vector<pair<int ,char>> p; p.push_back(make_pair(10,'a')); p.push_back(make_pair(9,'c')); sort(p.begin(),p.end(),judge);
最新回复(0)