優先順序設定
又稱優先佇列,底層用堆實現。隊首元素一定是優先順序最高的那乙個。寫法與其他stl相同
priority_queue<
typename
> name;
和佇列不同,優先佇列沒有front()、back()函式,而是只能通過top()函式來訪問隊首元素
#include
#include
#include
using
namespace std;
priority_queue<
int> q;
intmain()
push(x)令x入隊,o(logn).
取隊首元素.使用之前,用empty()判斷是否為空,否則kennel出現錯誤
令隊首元素出隊,o(logn)
#include
#include
#include
using
namespace std;
priority_queue<
int> q;
intmain()
int、double、char一般是數字大(字典序大)的優先順序高.
priority_queue<
int> q;
priority_queue<
int,vector<
int>
,less<
int>
>q;
第二種定義方式中vector< int >填寫的是用來承載底層資料結構堆(heap)的容器,與第乙個引數相同.而第三個引數less< int >是對第乙個引數的比較類,less< int >表示數字大優先順序越大,而greater< int >表示數字小的優先順序大
priority_queue<
int,vector<
int>
,greater<
int>
>q;
#include
#include
#include
using
namespace std;
struct node};
priority_queue q;
intmain()
p.x=
5;p.y=4;
q.push
(p);
while
(!q.
empty()
)}
priority queue用法詳解
一 priority queue常用函式例項解析 1 push push x 令x入隊,時間複雜度為o log n 其中 n 為當前優先佇列中元素的個數 2 top 獲得隊首元素 即堆頂元素 時間複雜度為o 1 3 pop 令隊首元素 即堆頂元素 出隊,時間複雜度為o log n 4 empty 檢...
C STL的priority queue用法總結
翻了很多部落格的總結 1 標頭檔案 include 2 定義 cpp view plain copy priority queue int p 3 優先輸出大資料 priority queue type為資料型別,container為儲存資料的容器,functional為元素比較方式。如果不寫後兩個...
priority queue的常見用法
其底層是用堆來進行實現的 在優先佇列中,隊首元素一定是當前佇列中優先順序最高的那乙個 當然,可以在任何時候往優先佇列裡面加入push元素 而優先佇列底層的資料結構堆 heap 會隨時調整結構 使得每次的隊首元素都是優先順序最大的 1 定義 priority queuename 2 容器內元素的訪問 ...