优先队列自定义排序函数

1 按数值从小到大输出

priority_queue<int,vector<int>,greater<int> >q;   //可理解为值越来越大

2 按数值从大到小输出

priority_queue<int,vector<int>,less<int> >q;     //可理解为值越来越小

3 默认值 相当于less

priority_queue<int>q;

4.数据类型为结构体 自定义排序函数

struct node{
	int id;
	int dis;
	bool operator > (const node &a)const{
		return dis>a.dis;              //代表你定义的优先级 可以随意定义
	}
};

priority_queue<node,vector<node>,greater<node> >q1;  //只能对应 operator > 符号
priority_queue<node,vector<node>,less<node> >q2;  //只能对应 operator < 符号

例子:

bool operator > (const node &a)const{
    return dis>a.dis;
}
priority_queue<node,vector<node>,greater<node> >q;   //按照从小到大的顺序输出

/*----------------------------*/

bool operator < (const node &a)const{
    return dis>a.dis;
}
priority_queue<node,vector<node>,less<node> >q;   //按照从小到大的顺序输出

posted @ 2022-05-18 13:17  starlightlmy  阅读(164)  评论(0)    收藏  举报