C++ 庫 - <priority_queue>



C++ 的優先佇列(Priority_queue) 是來自 STL 的一個容器介面卡,它提供了動態優先佇列資料結構。它以二叉堆的形式實現,允許高效地插入、刪除和訪問最高或最低優先順序的元素。預設情況下,它根據比較函式按降序排列元素。優先佇列通常用於 Dijkstra 最短路徑演算法和 Prim 最小生成樹演算法等演算法。

語法

以下是 std::priority_queue 的語法。

template <class T, class Container = vector<T>,
class Compare = less<typename Container::value_type> < class priority_queue;

引數

  • T − 包含的元素型別。

    T 可以被任何其他資料型別替換,包括使用者定義型別。

  • Container − 底層容器物件的型別。

  • Compare − 用於對 priority_queue 進行排序的比較物件。

    這可以是一個函式指標或函式物件,可以比較其兩個引數。

成員型別

以下成員型別可以用作成員函式的引數或返回型別。

序號 成員型別 定義
1 value_type T(模板的第一個引數)
2 container_type 模板的第二個引數
3 size_type size_t
4 reference value_type&
5 const_reference const value_type&
6 difference_type ptrdiff_t

來自 <priority_queue> 的函式

以下是來自 <priority_queue> 的所有方法列表。

建構函式

序號 方法和描述
1 priority_queue::priority_queue 預設建構函式

構造一個具有零個元素的空優先佇列。

2 priority_queue::priority_queue 初始化建構函式

構造一個 priority_queue 物件,並透過 ctnr 的副本分配內部容器。ctnr.

3 priority_queue::priority_queue 範圍建構函式

構造一個優先佇列,其中包含從 first 到 last 範圍內的所有元素。

4 priority_queue::priority_queue 移動建構函式

使用移動語義構造具有 other 內容的 priority_queue。

5 priority_queue::priority_queue 複製建構函式

構造一個 priority_queue,其中包含現有 priority_queue other 中每個元素的副本。

解構函式

序號 方法和描述
1 priority_queue::~priority_queue

透過釋放容器記憶體來銷燬 priority_queue。

成員函式

序號 方法和描述
1 priority_queue::emplace

構造並在 priority_queue 中按排序順序插入新元素。

2 priority_queue::empty

測試 priority_queue 是否為空。

3 priority_queue::operator=

透過替換舊內容來為 priority_queue 分配新內容。

4 priority_queue::pop

刪除 priority_queue 的首元素。

5 priority_queue::push

按排序順序插入新元素。

6 priority_queue::size

返回 priority_queue 中存在的元素總數。

7 priority_queue::swap

交換 priority_queue 的內容與另一個 priority_queue 的內容。

8 priority_queue::top

返回對 priority_queue 的第一個元素的引用。

廣告