优先队列运算符重载

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

posted @ 2025-10-21 09:09  Sqqqz185  阅读(8)  评论(0)    收藏  举报