今天做題用到了優先佇列 對它的用法還不是很熟悉 現在整理一下。
#includeusingnamespace std;
不過我都用bits/stdc++.h...
priority_queue
type是資料的型別 比如int啊char啊之類的
container是容器型別預設是vector
functional是比較的方式 比如greaterless或者自己定義的比較函式
priority_queue q;
這是最基本的用法 不需要像定義一樣傳三個引數進去 只需要宣告乙個資料型別即可
需要注意的是 優先佇列是預設從大到小排的!
//公升序佇列
priority_queue ,greater >q;
//降序佇列
priority_queue ,less >q;
因為宣告了比較的方式,這次必須要傳三個引數進去了
需要注意的是:
方法1 使用 friend bool operator
typedef structpriority_queueq;node
}point;
這個方法是將運算子的過載在結構體的定義中完成,優先佇列的的定義中就不需要傳三個引數了 在這個小例子裡看起來沒什麼用 不過解決複雜問題時,就需要採用結構體來設計資料結構 也就必須要告訴計算機,比較的方式。
需要注意的是:
方法2 使用 bool operator
typedef structnode
}point;
priority_queueq;
和採用friend bool operator的方法1一樣,只是寫法略有不同 我不喜歡用 感覺亂亂的....
structnode1
;struct
node2
};priority_queue
, node2> p;
重寫仿函式這個用起來真麻煩呀....需要宣告兩個結構體 不喜歡用....
STL 優先佇列用法
c 佇列queue模板類的定義在標頭檔案中,queue 模板類需要兩個模板引數,乙個是元素型別,乙個容器型別,元素型別是必要的,容器型別是可選的,預設為deque 型別。c 佇列queue是一種容器介面卡,它給予程式設計師一種先進先出 fifo 的資料結構。c 佇列queue類成員函式如下 back...
STL 優先佇列
優先佇列 在優先佇列中,優先順序高的元素先出佇列。標準庫預設使用元素型別的 操作符來確定它們之間的優先順序關係。優先佇列的第一種用法,也是最常用的用法 priority queue qi 通過 操作符可知在整數中元素大的優先順序高。故示例1 中輸出結果為 9 6 5 3 2 第二種方法 在示例1 中...
優先佇列 stl
priority queue預設頂部是最大值 1 優先佇列的定義 包含標頭檔案 queue.h functional.h 可以使用具有預設優先順序的已有資料結構 也可以再定義優先佇列的時候傳入自定義的優先順序比較物件 或者使用自定義物件 資料結構 但是必須過載好 操作符。2 優先佇列的常用操作 優先...