multiset (STL/CLR)
樣板類別說明控制不同的長度一連串的項目具有雙向 」 存取權的物件。您可以使用容器multiset來管理項目的序列對稱 (幾乎) 已排序節點樹狀結構,為每一個儲存一個項目。
在下列描述中GValue等同於GKey,其中依次等同於Key其餘後者則是參考型別,在這種情況是Key^。
template<typename Key>
ref class multiset
: public
System::ICloneable,
System::Collections::IEnumerable,
System::Collections::ICollection,
System::Collections::Generic::IEnumerable<GValue>,
System::Collections::Generic::ICollection<GValue>,
System::Collections::Generic::IList<GValue>,
Microsoft::VisualC::StlClr::ITree<Gkey, GValue>
{ ..... };
參數
- 機碼
受控制序列中項目的主要元件型別。
Members
型別定義 |
描述 |
---|---|
常數的 iterator 受控制序列的型別。 |
|
常數參考的項目型別。 |
|
常數的反向 iterator 受控制序列的型別。 |
|
(可能是帶正負號) 的距離,兩個元素之間的型別。 |
|
泛用介面,該容器的型別。 |
|
Iterator 容區的泛用介面的型別。 |
|
反向 iterator 容區的泛用介面的型別。 |
|
為泛用介面,該容器的項目型別。 |
|
受控制序列的 iterator 型別。 |
|
兩個索引鍵的順序委派。 |
|
排序的索引鍵的型別。 |
|
項目之參考型別。 |
|
對於受控制序列的反向 iterator 型別。 |
|
(非負數) 之間的距離兩個項目型別。 |
|
兩個項目值排序委派。 |
|
項目的型別。 |
成員函式 |
描述 |
---|---|
指定受控制序列的開頭。 |
|
移除所有項目。 |
|
計算符合指定的索引鍵的項目。 |
|
測試是否沒有項目呈現。 |
|
指定受控制序列的結尾。 |
|
尋找符合指定的索引鍵的範圍。 |
|
移除指定位置的項目。 |
|
尋找符合指定之索引鍵的項目。 |
|
將元素加入。 |
|
將複製兩個索引鍵的順序的委派。 |
|
尋找符合指定的索引鍵的範圍開始。 |
|
建構值物件。 |
|
建構容器物件。 |
|
指定已還原的受控制序列開頭。 |
|
指定已還原的受控制序列結尾。 |
|
計數項目的數目。 |
|
交換兩個容器的內容。 |
|
將受控制的序列複製到新的陣列。 |
|
尋找符合指定的索引鍵的範圍的結尾。 |
|
將複製兩個項目值的順序的委派。 |
運算子 |
描述 |
---|---|
取代受控制的序列。 |
|
如果決定multiset不等於另一個物件是multiset物件。 |
|
如果決定multiset物件是小於另一個multiset物件。 |
|
如果決定multiset物件是小於或等於到另一個multiset物件。 |
|
如果決定multiset物件是否等於另一個multiset物件。 |
|
如果決定multiset物件是否大於另一個multiset物件。 |
|
如果決定multiset物件是大於或等於另一個multiset物件。 |
介面
介面 |
描述 |
---|---|
重複的物件。 |
|
序列項目。 |
|
維持群組項目。 |
|
透過型別元素的順序。 |
|
維護具型別項目的群組。 |
|
ITree < 索引鍵、 值 > |
維護泛用的容器。 |
備註
物件會配置並釋放它控制以個別節點的順序儲存。它會將元素插入 (幾乎) 對稱的樹狀目錄,它將保持已排序的改變而非由一個節點的內容複製到另一個節點之間的連結。也就是說,您可以插入和移除項目自由不干擾其餘的項目。
順序它藉由呼叫預存的委派型別的物件來控制序列的物件multiset::key_compare (STL/CLR)。您可以指定預存的委派物件,當您建立多重集。 如果您指定了委派的物件,則預設會比較operator<(key_type, key_type)。您呼叫成員函式來存取這個預存的物件multiset::key_comp (STL/CLR)()。
這類委派物件必須加上嚴格弱式順序索引鍵的型別上multiset::key_type (STL/CLR)。也就是說,對於任何兩個機碼,在X和Y:
key_comp()(X, Y)傳回的同一個布林值會產生,在每次呼叫。
如果key_comp()(X, Y) ,就為 true, key_comp()(Y, X)必須是,則為 false。
如果key_comp()(X, Y) ,就為 true, X排列前即稱為Y。
如果!key_comp()(X, Y) && !key_comp()(Y, X) ,就為 true, X和Y指具有相同的順序。
對於任何項目X ,之前Y在受控制序列中, key_comp()(Y, X)為 false。(預設值的委派物件,為索引鍵永遠不會降低。)與樣板類別不同的是set (STL/CLR),範本類別的物件multiset不需要的所有項目的索引鍵都是唯一。(兩個或多個按鍵可以有相同的順序)。
每個項目可作為金鑰和值。序列都會以允許查閱、 插入及移除一些項目的數字的對數成比例的作業與任意項目,依序 (對數時間) 的方式。此外,將項目失效沒有 iterator,,並移除項目會以在已移除的項目指那些 iterator 使失效。
多重集支援雙向 iterator,這表示您可以前往相鄰的項目提供 iterator,指派受控制序列中的項目。特殊的主節點相對於所傳回的 iterator multiset::end (STL/CLR)()。如果有的話,您可以減少到達最後一個項目,在受控制序列中,這個 iterator 的規定。您可以遞增多重集的 iterator 到達主節點,以及它接著會比對是否等於end()。您不能解除參考所傳回的 iterator,但是end()。
請注意,您不能直接指定其數值的位置-需要隨機存取 iterator 的多重集項目參照。
多重集的 iterator 會儲存與其相關聯的多重集節點,可依序儲存到其相關聯的容器的控制碼的控制代碼。Iterator 只適用於其相關的容器物件。多重集的 iterator 會保持有效,只要其相關聯的多重集的節點是某些多重集相關聯。此外,有效的 iterator 是 dereferencable--您可以使用它來存取或修改後,它指定-項目值,只要不等於書籤end()。
正在清除或移除項目儲存的值會呼叫解構函式。摧毀容器時,會清除所有項目。因此,的容器,其元素型別是一種 ref 類別可確保沒有項目 outlive 的容器。不過請注意,容器的控制代碼不會not摧毀它的項目。
需求
標頭: < cliext/設定 >
Namespace: cliext