方式 1
struct ab{int b,v,k;bool operator <(const ab &a)const{//代表前(v)与后(a.v)进行比较return v>a.v;}
};
priority_queue<ab> q;
方式 2
struct ab{int b,v,k;friend bool operator<(ab a, ab b){return a.v>b.v;}
};
priority_queue<ab> q;
这两个得到的都是按照 v 从小到大排序的堆。
总结
优先队列有关的运算符重载,里面的大小判断全都反过来。
重载的是大于号还是小于号,取决于定义的是大根堆还是小根堆。(大就用大于号,反之亦然)