struct node
{
int l,r;
bool operator <(const node &a)const{
return r < a.r;
}
}a[maxn];
- 直接写比较函数是裸的r表示当前的值,如果r<a.r,那么就是从小到大排序,但是优先队列的是相反的。
- sort默认为从小到大排序,优先队列默认为从大到小。
struct node
{
int l,r;
bool operator <(const node &a)const
{
return r>a.r;
}
};
priority_queue<node> q;
- 那么这个优先队列是按r小的优先出队。
- 结构体内嵌比较函数的使用就是直接sort就可以,sort(a,a+n);
- 当然也可以直接写一个比较的函数:
1 bool cmp(node a,node b){
2
3 return a.r<b.r;
4
5 }
- 用法就是sort(a,a+n,cmp);