STL 優先佇列 用法

2022-06-03 10:24:13 字數 1131 閱讀 7242

今天做題用到了優先佇列 對它的用法還不是很熟悉 現在整理一下。

#includeusing

namespace 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 struct

node

}point;

priority_queueq;

這個方法是將運算子的過載在結構體的定義中完成,優先佇列的的定義中就不需要傳三個引數了 在這個小例子裡看起來沒什麼用 不過解決複雜問題時,就需要採用結構體來設計資料結構 也就必須要告訴計算機,比較的方式。

需要注意的是:

方法2 使用 bool operator

typedef struct

node

}point;

priority_queueq;

和採用friend bool operator的方法1一樣,只是寫法略有不同 我不喜歡用 感覺亂亂的....

struct

node1

;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 優先佇列的常用操作 優先...