自定义排序
作者:
travel2.0
,
2024-01-21 15:20:41
,
所有人可见
,
阅读 51
符号重载排序和stl的排序规定关键字
结构体的符号重载排序
法一:
struct seg{
int l,r,id; //实现三元存储,重点为了不改变索引;
bool operator < (const seg &a)const{
if(l!=a.l) return l>a.l ; //实现第一关键字降序;
else (l== a.l) return r<a.r ; //实现第二关键字升序;
}
}seg[N];
sort(seg,seg+n);
法二:struct seg{
int l,r,id;
friend bool operator < (seg a,seg b){
if(a.l!=b.l) return a.l> b.l;
else return a.r<b.r;
}
}seg[N];
sort(seg,seg+n);
stl排序的cmp
typedef pair<int,int> PII;
vector<PII> v;
bool cmp(PII a,PII b){
if(a.first != b.first ) return a.first > b.first;
else a.second < b.second;
}
sort(v.begin(),end(),cmp);