priority_queue (STL/CLR)
樣板類別描述物件控制存取項目的變更長度順序序列。 您使用容器配接器 priority_queue 處理基礎容器為優先權佇列。
在如下解譯, GValue 相當於 Value ,除非後面是參考型別,在這種情況下,它是 Value^的情況下。 同樣地,GContainer 與 Container ,除非後面是參考型別,在這種情況下,它是 Container^的情況下
template<typename Value,
typename Container>
ref class priority_queue
System::ICloneable,
Microsoft::VisualC::StlClr::IPriorityQueue<GValue, GContainer>
{ ..... };
參數
值
受控制序列中項目的型別。容器
基礎容器的型別。
成員
類型定義 |
說明 |
---|---|
項目的常數參考類型。 |
|
基礎容器的型別。 |
|
兩個項目之間的帶正負號距離的類型。 |
|
泛型介面的型別的容器配接器。 |
|
容器適配器的泛型介面的元素的型別。 |
|
項目的參考類型。 |
|
兩個項目之間的帶正負號距離的類型。 |
|
兩個項目的排序委派。 |
|
項目的類型。 |
成員函式 |
說明 |
---|---|
取代所有項目。 |
|
測試項目是否不存在。 |
|
存取基礎容器。 |
|
移除 hghest 優先順序項目。 |
|
建構一個容器物件。 |
|
加入新增項目 |
|
計數項目的數目。 |
|
存取最高優先權的項目。 |
|
複製受控制序列到新陣列。 |
|
複製兩個項目的排序委派。 |
屬性 |
說明 |
---|---|
存取最高優先權的項目。 |
運算子 |
說明 |
---|---|
取代受控制序列。 |
介面
介面 |
說明 |
---|---|
重複物件。 |
|
IPriorityQueue<Value, Container> |
維護泛型容器配接器。 |
備註
物件配置和未使用的記憶體區域透過基礎容器的序列,型別控制 Container,儲存 Value 項目並增加在要求時。 它保留順序排列成堆積,與可移動最高優先權的項目 (頂端) 項目立即存取和。 物件會限制對推入新項目和快顯最高優先權的項目的存取,實作優先權佇列。
它會藉由呼叫 priority_queue::value_compare (STL/CLR)型別所儲存的委派物件控制物件的排序序列。 在建構 priority_queue 時,您可以指定儲存委派物件;如果您不指定委派物件,預設為比較 operator<(value_type, value_type)。 您可以呼叫成員函式存取這個儲存物件的()priority_queue::value_comp (STL/CLR)。
這類委派物件必須強制嚴格弱式順序給 priority_queue::value_type (STL/CLR)型別的值。 這表示,任何兩個索引鍵的 X 和 Y:
value_comp()(X, Y) 會在每次呼叫相同的布林值結果。
如果 value_comp()(X, Y) 為 true,則 value_comp()(Y, X) 必須為 false。
如果 value_comp()(X, Y) 為 true,則 X 會在 Y之前。
如果 !value_comp()(X, Y) && !value_comp()(Y, X) 為 true,則 X 和 Y 有相同 Bucket 的項目。
對於在受控制序列的 Y 之前的任何項目則為 X , key_comp()(Y, X) 是錯誤的。(預設委派物件,金鑰會減少值)。
最高優先權的項目而不是在其他項目之前已排序的其中一個項目。
因為基礎容器保留項目順序為堆積:
容器必須支援隨機存取 Iterator。
與相等排序的項目比它們已推入可能以不同的順序快顯。(定序不穩定)。
因此,基礎容器的候選包括 deque (STL/CLR) 和 vector (STL/CLR)。
需求
標頭: <cliext/queue>
命名空間: cliext