1. 程式人生 > 其它 >[STL]優先佇列priority_queue

[STL]優先佇列priority_queue

有關 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宣告時會用到大量 < > 符號

不要連在一起而寫成 <<>> 而被計算機判斷為二進位制運算子