priority queue用法小結

2021-10-09 06:50:57 字數 1543 閱讀 3621

優先順序設定

又稱優先佇列,底層用堆實現。隊首元素一定是優先順序最高的那乙個。

寫法與其他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 容器內元素的訪問 ...