[STL]優先佇列priority_queue
阿新 • • 發佈:2022-04-11
有關 priority_queue 的使用手冊:
呼叫庫#include <queue>
priority_queue 預設 為 大根堆
大根堆 用法 priority_queue <int , vector<int> , less <int> > que;
小根堆 用法 priority_queue <int , vector<int> , greater <int> > que;
pair型別(二元組)輔助
特別提及dijkstra求最短路徑中用法
在dijkstra優先佇列優化中,
需要將dis[]
的值入隊選取最小的dis[]
問題是:找到最小dis[]
後需要選取其對應的點
為解決此問題,引入 pair型別 輔助 priority_que
pair型別使用呼叫庫include <iostream>
用法如下
a = make_pair(1 , 2);
//則 a.first == 1 , a.second == 2;
特別的,對於 使用pair輔助 的 prority_queue 寫法
priority_queue < int , vector< <pair<int , int> > , greater <pair<int , int> > > que; //大根堆同理
PS:
對於priority_queue宣告時會用到大量 <
>
符號
不要連在一起而寫成 <<
或 >>
而被計算機判斷為二進位制運算子