priority_queue Class
提供一些限制對基礎容器型別最上層項目的功能限制存取,永遠是最大或最高優先權的樣板容器配置器類別。新的項目加入 priority_queue,而且可以透過檢查或移除 priority_queue 的最上層項目。
template <
class Type,
class Container=vector<Type>,
class Compare=less<typename Container::value_type>
>
class priority_queue
參數
Type
在 priority_queue 儲存項目的資料型別。Container
用於的基礎容器的型別實作 priority_queue。Compare
提供一個函式物件可以比較兩個值在排序鍵決定它們在 priority_queue 的相對順序的型別。這個引數是選擇性的,而且二進位述詞 less*<typename 容器*::value_type***>* 是預設值。
備註
在佇列物件的第一個樣板參數規定的類別 [型別] 的項目。 value_type 與定義,而且必須符合第二個樣板參數在基礎容器類別的 容器 規定之項目的型別。[型別] 必須可指派,因此,複製該型別的物件並將值指派給該型別的變數是可能的。
它會呼叫類別 Traits所儲存的函式物件控制項的 priority_queue 排序序列。一般來說,項目只比可比較需要建置這個順序:因此將任何兩個項目,可以判斷或其相等 (因為都比其他不小於) 或是小於另一個。這會導致排程在非對等的項目之間。在一個技術提示,比較函式是造成嚴格弱式排程在標準數學意義一類的二進位述詞。
priority_queue 的適當的基礎容器類別包含 deque 類別 和預設 向量類別 或支援 front作業、 push_back和 pop_back 和隨機存取 Iterator 的其他序列容器。基礎容器類別在容器配置器中封裝,公開序列容器成員函式只能限制設定為公用介面。
將項目加入和移除元素 priority_queue 兩個對的複雜度。在 priority_queue 存取的項目具有常數的複雜度。
會針對定義的容器配置器有三種類型:堆疊、佇列和 priority_queue。每一個限制一些基本容器類別的功能提供了精確控制介面提供一種標準資料結構。
堆疊類別 支援的前面,初始 (LIFO) 資料結構。若要記住的良好類比是堆疊板材。項目 (板材) 可能會從堆疊頂端插入,已檢查或只移除,是最後一個項目位於基底容器的結尾。為中的最上層項目的限制是使用原因堆疊類別。
佇列類別 支援先進先出 (FIFO) 資料結構。若要記住的良好類比是佇列的 Bank 出納員成員的人員。項目 (人力) 可能會加入至線條的後置和該行的前面移除。接著行的後面可以簽出。存取只前後項目的限制這種方式是使用原因佇列類別。
priority_queue 類別排序其項目,使其最大的項目一定是位於最上層位置。它支援的項目插入和最上層項目的檢查和移除。若要記住的良好類比是佇列的人員、年齡、高度,或是其他準則之前的位置排列控制項。
建構函式
建構是空的或為基本容器物件範圍的複本或其他 priority_queue的 priority_queue 。 |
Typedef
提供 priority_queue會符合的基底容器的型別。 |
|
可以表示的項目數目。 priority_queue的不帶正負號的整數 (Unsigned Integer) 型別。 |
|
表示做為項目儲存物件的型別。 priority_queue的型別。 |
成員函式
測試,如果 priority_queue 是空的。 |
|
從最上方的位置移除 priority_queue 的最大的項目。 |
|
將項目加入至根據項目的優先順序較高的優先權佇列從 operator<。 |
|
傳回的項目數目。 priority_queue的。 |
|
傳回在最大項目的 const 參考 priority_queue。 |
需求
Header: <queue>
命名空間: std