優先佇列自定義排序函式
阿新 • • 發佈:2022-05-18
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; //按照從小到大的順序輸出