Share via


priority_queue 類別

提供一些限制對基礎容器型別的最上層項目的功能限制存取,永遠是最大或最高優先權的樣板容器配接器類別。 新項目可加入至 priority_queue,可以檢查或移除 priority_queue 的最上層項目。

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

參數

  • 型別
    在 priority_queue 儲存項目的資料型別。

  • Container
    用於的基礎容器的型別實作 priority_queue。

  • Compare
    提供函式物件可以比較兩個項目值做為排序鍵判斷它們在 priority_queue 的相對順序的型別。 這個引數是選擇性的,而且二進位述詞 less*<typename* 容器**::value_type***>是預設值。*

備註

在佇列物件的第一個樣板參數規定的類別 [型別] 的項目與 value_type 與定義,而且必須符合第二個範本參數在基礎容器類別 Container 的規定的項目型別。 [型別] 必須可指派,因此,複製該型別物件和指派值給該型別的變數是可能的。

它會呼叫類別 Traits所儲存的函式物件控制項的 priority_queue 排序序列。 通常,項目必須是小於比較才能排序,因此若提供了兩個項目,可以判斷它們相等 (任一個都不小於另一個的意義),或者一個小於另一個。 這會導致在非對等元件之間的排序 在一個技術提示,比較函式是產生在標準數學概念的嚴格弱式順序的二元述詞。

priority_queue 的適當的基礎容器類別包括 雙向佇列類別 和預設 Vector 類別 或支援 front作業、 push_backpop_back 和隨機存取 Iterator 的其他序列容器。 基礎容器類別在容器配接器中封裝,只公開有限的序列容器成員函式做為公用介面。

將項目加入和移除項目從 priority_queue 都具有對數複雜。 存取 priority_queue 中的項目有常數複雜。

會針對定義的容器配接器的三種類型:堆疊、佇列和 priority_queue。 每個限制一些基本的容器類別的功能提供了精確控制介面給標準資料結構。

  • 堆疊類別。 支援的前面,初始 (LIFO) 資料結構。 要記住的良好類比是堆疊中最。 項目 (中的) 可能會從堆疊頂端插入的是,會檢查或只移除,是最後一個項目在基礎容器的結尾。 對只存取這個最上層項目的限制是之所以使用堆疊類別。

  • 佇列類別 支援的實作,初始 (FIFO) 資料結構。 要記住的良好類比是佇列的區塊會提供成員的人員。 項目 (人們) 可能會加入至行的後面和從行的前面移除。 前面一行的後面可能被檢查。 存取只前後項目的限制這種原因是為使用佇列類別。

  • priority_queue 類別排序其項目,因此最大的項目一定是在最上方的位置。 它支援項目的外掛程式和這個最上層項目的檢查和移除。 要記住的良好類比是佇列的人員、年齡、高度,或是其他標準之前的地方加以排列。

建構函式

priority_queue

建構是空的或為基礎容器物件的範圍內複製或其他 priority_queuepriority_queue

Typedef

container_type

提供 priority_queue將符合的基礎容器的型別。

size_type

可以表示 priority_queue中的項目數不帶正負號的整數類資料型別。

value_type

表示為項目中的物件型別在 priority_queue的型別。

成員函式

empty

測試,如果 priority_queue 是空的。

pop

移除從 priority_queue 頂端位置的最大項目。

push

將項目加入此項目的優先權的優先權佇列從運算子<。

size

傳回 priority_queue 的元素數目。

top

傳回為最大項目的常數參考 priority_queue的頂端。

需求

Header: <佇列>

命名空間: std

請參閱

參考

C++ 標準程式庫中的執行緒安全

標準樣板程式庫