STL priority queue學習筆記

2022-05-26 20:24:12 字數 1451 閱讀 1060

在學習了堆優化的迪傑斯特拉時,學了優先佇列,發現非常好用。qaq之前應該早點學的,哎,自己又菜又懶,鹹魚王無疑了。學習知識點記錄下來!

優先佇列就是將佇列中的元素賦予優先順序,在訪問優先佇列中的元素時,具有最高優先順序的元素先被訪問。佇列時先進先出,而優先佇列是優先順序最高的先出。

初始化:需要

標頭檔案 #include

priority_queue

type 就是資料型別,

container 

就是容器型別(

container

必須是用陣列實現的容器,比如

vector,deque

等等,但不能用

list

。stl

裡面預設用的是

vector

),functional 

就是比較的方式,當需要用自定義的資料型別時才需要傳入這三個引數,使用基本資料型別時,只需要傳入資料型別,預設是大頂堆

一般是:

priority_queue ,greater > q; //

公升序佇列

priority_queue ,less >q; //

降序佇列

priority_queueq; //

node為結構體,可以自定義優先順序

empty( )  //

判斷乙個佇列是否為空

pop( )  //

刪除隊頂元素

push( )  //

加入乙個元素

size( )  //

返回優先佇列中擁有的元素個數

top( )  //

返回優先佇列的隊頂元素

#include#include

using

namespace

std;

intmain()

;

for(int i=0;i<5;i++)

cout

<<"

公升序佇列

"

cout

<<"

降序佇列

"

return0;

}

//

自定義優先順序

#include#include

using

namespace

std;

struct

node

node(

int a,int

b)

operator

< (const node &rhs)const

}; int

main()

return0;

}

參考:

STL priority queue 優先佇列

剛開始學習演算法不久,一些常用的演算法工具還沒有掌握,真是丟人!前一段時間用到優先順序佇列時,都是自己手動通過最大堆或者最小堆來寫乙個,容易出錯且耗時。接觸到stl後,開始用map和set模擬乙個優先順序佇列,但是總有一些小問題出現,發現stl功能強大,但我卻幾乎不懂。今天終於決定使用stl提供的p...

STL priority queue 常見用法詳解

演算法筆記 學習筆記 priority queue又稱優先佇列,其底層時用堆來實現的。在優先佇列中,隊首元素一定是當前佇列中優先順序最高的那乙個。桃子 優先順序 3 梨子 優先順序 4 蘋果 優先順序 1 那麼出隊順序是 梨子 4 桃子 3 蘋果 1 可以在任何時候往優先佇列裡面加入 push 元素...

C Primer Chapter One學習筆記

筆記 1.流 從io裝置上讀入或寫出的字串行,用來說明字元隨時間順序生成或消耗。2.輸入輸出符可連用原因 operator 或operator 返回stream物件。3.要測試程式那個語句出錯,使用cout 4.新建乙個內建型別,如int i 0 最好先初始化,不然用到的時候沒初始化會產生奇怪的錯誤...