multimap Class
標準樣板程式庫多重對應類別為資料儲存和擷取這個每個項目都是對資料值和一個排序鍵的集合使用。 索引鍵值不需要是唯一和使用自動排序資料。 可以直接變更項目的值在多重對應的,不過,沒有關聯的索引鍵值。 相反地,必須刪除索引鍵值與舊項目,而且新的索引鍵值與插入的新項目。
template <
class Key,
class Type,
class Traits=less<Key>,
class Allocator=allocator<pair <const Key, Type> >
>
class multimap
參數
機碼
在多重對應儲存的主要資料型別。Type
在多重對應儲存項目的資料型別。Traits
提供函式物件可以比較兩個項目值做為排序鍵判斷它們在多重對應的相對順序的型別。 二元述詞 less*<Key>* 是預設值。Allocator
代表儲存的配置器物件型別封裝詳細資料與記憶體的對應的配置和解除配置。 這個引數是選擇性的,預設值為*<*allocatorpair *<*const 按鍵, Type> >。
備註
STL 多重對應類別是
關聯的容器,可變大小容器支援項目值有效的擷取是以關聯的索引鍵值。
雙面布料,,因為它提供雙向 Iterator 存取其項目。
排序,,因為該項目是由容器內的金鑰值排序符合指定的比較函式。
倍數,,因為它的項目不需要有唯一索引鍵,因此,一個按鍵值可以有多個資料值與它。
相關聯,容器,因為其元素的資料值已經從其索引鍵值是不同的。
樣板類別,,因為它提供的功能是泛型和很獨立的做為項目或索引鍵包含資料的特定型別。 為項目和索引鍵將使用的資料型別,而是,指定為參數在類別樣板與比較函式和配置器。
對應類別提供的 Iterator 是雙向 Iterator,不過,類別成員 插入 和 多重對應 函式會採用當做樣板參數較弱的輸入 Iterator,功能需要比雙向 Iterator 類別會確保的最小版本。 不同的 Iterator 概念形成其功能的修改關聯性的家族。 每個 Iterator 概念有自己的一組需求,並使用它們需要限制其假定對要求的演算法由該 Iterator 提供了。 可能會假設,輸入 Iterator 可能已取值參考物件的陣列,而且可能會加入至序列中的下一個 Iterator。 這是最小的一組功能,不過,它是足夠可以有意義地溝通有關 Iterator [_First, _Last) 的 範圍在類別的成員函式中。
容器型別所應該根據應用程式所需的搜尋和外掛程式型別的一般。 關聯的容器為搜尋、插入和移除作業進行最佳化。 成員函式的明確支援這些作業很有效率,執行它們在時間平均比例與項目數目) 在容器中。 插入項目不無效 Iterator,,並移除項目沒有特別會在移除的後面的項目僅 Iterator。
表示在關聯值的條件與其索引鍵由應用程式時,內容多重對應應該是相關的容器中。 這種結構的模型與提供的定義關聯的字串值的按鍵的排序清單,文字不一定唯一定義。 如果為,則相反地,按鍵唯一定義,使索引鍵是唯一的,則對應是容器中。 如果,另一方面,儲存文字清單,則集合是無效的容器。 如果文字的多個事件允許,則多重集是適當的容器結構。
它會藉由呼叫 key_compare型別所儲存的函式物件控制項的多重對應排序序列。 這個儲存物件是可以透過呼叫成員函式存取 key_comp的比較函式。 一般而言,需要的只是相當少於建立順序如下:因此將任何兩個項目,可以判斷為它們相等 (所以都不小於其他) 或一個小於其他。 這會導致在非對等元件之間的定序。 在一個技術提示,比較函式是產生在標準數學概念的嚴格弱式順序的二元述詞。 二進位述詞 f(*x, y)*是具有兩個引數物件 x 和 y 和傳回值 True 或 False 的函式物件。 將集合中指定的順序是嚴格弱式順序,如果二進位述詞是非反身屬性,物件名稱以及成功,而且,如果等價是傳遞的,其中兩個物件的 x 和 y 定義相等,則兩個 f 時(*x、y)*和 f(*x, y)*是錯誤的。 如果相等的更強的狀況。索引鍵之間的取代該字元,則定序變成總數 (也就是將所有項目排序關於彼此),且相符的索引鍵彼此會難以辨別的。
Members
建構函式
建構是空的或為其他 multimap全部或部分複製到其中的 multimap 。 |
Typedef
表示 multimap 物件的 allocator 類別的型別。 |
|
提供雙向 Iterator 可讀取 multimap中的 const 項目的型別。 |
|
提供指標給 multimap中的 const 項目的型別。 |
|
提供對 const 項目之參考的型別在讀取和執行 const 作業的 multimap 物件中。 |
|
提供雙向 Iterator 可讀取 multimap中的所有 const 項目的型別。 |
|
可以用來表示 multimap 之項目的數目在某個範圍的項目之間的帶正負號的整數類資料型別指向 Iterator。 |
|
提供兩個 Iterator 之間的差別是指相同 multimap元素的型別。 |
|
提供函式物件可以比較兩個排序鍵判斷兩個項目相對順序在 multimap的型別。 |
|
描述排序鍵物件構成 multimap的每個元素的型別。 |
|
表示資料型別的型別在 multimap物件中。 |
|
提供指標給 multimap中的 const 項目的型別。 |
|
提供的項目參考的型別在 multimap物件中。 |
|
提供雙向 Iterator 可讀取或修改反轉 multimap中元素的型別。 |
|
提供指標給 multimap中的 const 項目的不帶正負號的整數類資料型別。 |
|
提供函式物件可以比較兩個項目做為排序鍵判斷其與 multimap的相對順序的型別。 |
成員函式
傳回位址的 Iterator 在 multimap的第一個項目。 |
|
傳回常數定址的 Iterator 在 multimap的第一個項目。 |
|
傳回處理成功最後一個項目的位置在 multimap常數 Iterator。 |
|
清除 multimap的所有項目。 |
|
傳回項目數索引鍵符合參數所指定的索引鍵的 multimap 。 |
|
傳回常數定址的 Iterator 在反轉 multimap的第一個項目。 |
|
傳回處理成功最後一個項目的位置會反轉 multimap常數 Iterator。 |
|
插入建構的項目就地讀入 multimap。 |
|
插入建構的項目就地至 multimap,並將提示 |
|
測試,如果 multimap 是空的。 |
|
傳回處理成功最後一個項目的位置在 multimap的 Iterator。 |
|
尋找項目索引鍵符合指定值的元素範圍。 |
|
從指定的位置移除項目的範圍在 multimap 的或移除符合指定之索引鍵的項目。 |
|
傳回位址的 Iterator 有金鑰對應至指定索引鍵之項目的第一個位置的 multimap 。 |
|
傳回 allocator 物件的複本建構 multimap。 |
|
插入項目或某個範圍的 multimap。 |
|
擷取用來比較物件的複製到命令輸入 multimap。 |
|
傳回 Iterator 置於與索引鍵等於或大於指定之索引鍵的 multimap 的第一個項目。 |
|
傳回 multimap的最大長度。 |
|
傳回位址的 Iterator 在反轉 multimap的第一個項目。 |
|
傳回處理成功最後一個項目的位置會反轉 multimap的 Iterator。 |
|
傳回 multimap中的項目數。 |
|
交換兩個 multimap. 的項目。 |
|
傳回 Iterator 置於與索引鍵大於指定索引鍵的 multimap 的第一個項目。 |
|
成員函式傳回藉由比較其索引鍵值判斷項目順序的 multimap 函式物件。 |
運算子
用另一個 multimap複本取代 multimap 的項目。 |
需求
Header: <map>
命名空間: 可以
(key, value) 到多重對應儲存為型別 pair的物件。 對類別要求標頭的 <utility>, <map>會自動併入。