重载 < sort
sort后按r的大小 从小到大排序
struct S
{
int l,r;
// 固定格式
bool operator <(const S &a)const
{
return r < a.r;
}
}s[N];
sort后按r的大小 从大到小排序
struct S
{
int l,r;
// 固定格式
bool operator <(const S &a)const
{
return r > a.r;
}
}s[N];
priority_queue
//对于基础类型 默认是大顶堆
priority_queue<int> heap; //top返回的是最大值
//等同于 priority_queue<int, vector<int>, less<int> > heap;
priority_queue<int, vector<int>, greater<int> > heap; //这样就是小顶堆 top返回最小值
只能重载小于号<
用于priority_queue<Rec> heap;(默认是大根堆)
struct Rec1
{
int x,y;
bool operator<(const Rec &t)const
{
return x<t.x
}
};
priority_queue<Rec1> heap; 重载小于号,大的在前面:大根堆
struct Rec2
{
int x,y;
bool operator<(const Rec &t)const
{
return x>t.x
}
};
priority_queue<Rec2> heap; 重载小于号,小的在前面:小根堆
只能重载大于号>
用于priority_queue<Rec,vector<Rec>,greater<Rec>> heap(默认是小根堆)
struct Rec1
{
int x,y;
bool operator>(const Rec1 &t)const
{
return x>t.x;
}
};
priority_queue<Rec1,vector<Rec1>,greater<Rec1> > heap 小根堆
struct Rec2
{
int x,y;
bool operator>(const Rec2 &t)const
{
return x<t.x;
}
};
priority_queue<Rec2,vector<Rec2>,greater<Rec2> > heap 大根堆