优先队列运算符重载
方式 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 从小到大排序的堆。
总结
优先队列有关的运算符重载,里面的大小判断全都反过来。
重载的是大于号还是小于号,取决于定义的是大根堆还是小根堆。(大就用大于号,反之亦然)

浙公网安备 33010602011771号