共用方式為


hash_multimap Class

注意事項注意事項

這個 API 已經過時。這個選項是 unordered_multimap Class

容器類別 hash_multimap 是標準樣板程式庫的副檔名為資料儲存區和快速擷取從每個項目都是對具有排序鍵值不需要是唯一的和有相關聯的資料值的集合使用。

template <
   class Key, 
   class Type, 
   class Traits=hash_compare<Key, less<Key> >, 
   class Allocator=allocator<pair <const Key, Type> > 
>
class hash_multimap

參數

  • 機碼
    在 hash_multimap 存放在主要資料型別。

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

  • Traits
    由兩個函式物件的型別,可以比較這兩個項目值的類別 Traits ,因為排序鍵判斷其相對順序和是對應項目的索引鍵值一元述詞對型別 size_t不帶正負號的整數 (Signed Integer) 的雜湊函式。 這個引數是選擇性的,因此, hash_compare*<Key, less<Key> >* 是預設值。

  • Allocator
    代表儲存的配置器物件封裝關於記憶體的 hash_multimap 的配置和解除配置之詳細資料的型別。 這個引數是選擇性的,因此,預設值為 allocator*<*pair *<*const 按鍵, Type> >。

備註

hash_multimap 如下:

  • 一個組合容器,可變大小容器支援項目值有效率的擷取以關聯的索引鍵值。

  • 雙面布料,,因為它提供雙向 Iterator 存取其項目。

  • 雜湊,,因為其項目分組為根據雜湊函式值的套用至雜湊桶元素的索引鍵值。

  • 倍數,,因為它的項目不需要有唯一索引鍵,因此,一個按鍵值可以有許多項目資料值與它。

  • 對關聯,容器,因為其項目值從其索引鍵值是不同的。

  • 樣板類別,,因為它提供的功能是泛型,因此資料的特定型別的獨立做為項目或包含的索引鍵。 為項目和金鑰之資料型別,而是,,指定參數在類別樣板與比較函式和配置器。

雜湊的主要好處在排序是較大的效率;成功的雜湊在常數的平均時間執行插入、刪除和尋找與時間比較比例與項目數目的資料至容器中的排序方式。 可能會直接變更一個項目的值。hash_multimap 的,不過,沒有關聯的索引鍵值。 相反地,必須刪除索引鍵值與舊項目,而且新索引鍵值與插入新的項目。

容器型別選擇應該根據應用程式所需的搜尋和外掛程式型別的一般。 雜湊的結合容器提供搜尋、插入和移除操作的最佳化。 這個成員函式明確支援這些作業很有效率,當搭配一個設計完善的雜湊函式,執行它們在時間平均常數和不相依於項目數目於容器。 一個設計完善的雜湊函式產生雜湊值的制式散發並降低衝突數目,會發生衝突,當獨特索引鍵值會對應至相同雜湊值時。 在最壞的情況下,最壞的雜湊函式,作業數目與項目數目成正比順序 (線性時間) 的。

表示在關聯值的條件與其索引鍵由應用程式時,內容 hash_multimap 應該是結合紙匣選項。 這種結構的模型與提供的定義關聯的字串值的按鍵的排序清單, Word 不一定唯一定義。 如果,反之,關鍵字唯一定義,以便索引鍵是唯一的,則是 hash_map 紙匣選項。 如果,另一方面,存放文字清單,則 hash_set 是正確的容器。 如果 Word 的多個項目上,則 hash_multiset 是適當的容器結構。

它會呼叫型別 value_compare儲存的雜湊 Traits 控制物件的 hash_multimap 排序序列。 這個儲存物件可以透過呼叫成員函式存取 key_comp。 這類函式物件必須一般作業的類別 hash_compare<Key 相同, <Key>less物件。 具體來說,為型別 索引鍵的所有值 _Key ,呼叫 Traits(_Key) 產生 size_t型別值的發行。

一般來說,項目只會比較需要建立順序如下:因此將任兩個項目,可以判斷為它們相等 (所以都比其他不小於) 或一個小於另一個。 這會導致在聯結後產生非對等的項目之間。 在一個 Technical Note,比較函式是造成嚴格弱式順序在標準數學概念的二進位述詞。 二進位述詞 f(x,*y)*是具有兩個引數物件 x 和 y 和傳回值 true 或 false 的函式物件。 將 hash_multimap 施加的順序是嚴格弱式排序受二進位述詞是否 irreflexive,物件名稱和傳遞的,且相等是否可轉移的,其中兩個物件 x 和 y 定義相等,則兩個時( fx、*y)*和 ( fxy)是錯誤的。 如果相等的更強的情況在索引鍵間的相等,則取代該順序變成總數 (也就是將所有項目排序關於彼此),且相符索引鍵彼此會很難識別類別的。

項目實際順序在受控制序列的取決於雜湊函式、排序函式及容器是儲存在雜湊資料表的目前大小。 您無法判斷雜湊資料表的目前大小,因此,您無法預測一般項目順序受控制序列的。 插入項目不會失效, Iterator,並移除項目失效特別會在移除的後面的項目僅 Iterator。

hash_multimap 類別提供的 Iterator 是雙向 Iterator,不過,類別成員函式 插入hash_multimap 有接受當做樣板參數較弱的輸入 Iterator,功能需要比雙向 Iterator 類別保證的最小版本。 不同的 Iterator 概念形成在其功能的精簡關係的家族。 每個 Iterator 概念有要求其 hash_multimap,,並使用它們需要限制其假定對要求的演算法由那個 Iterator 提供了。 可能會假設,輸入 Iterator 可能已取值參考物件的陣列,而且可能會加入至序列中的下一個 Iterator。 這是功能的最小 hash_multimap,不過,它是足夠可以有意義地溝通有關 [_First Iterator , _Last) 的範圍在成員函式中。

在 Visual C++ .NET Pocket PC, <hash_map><hash_set> 標頭檔 (Header File) 的成員不在 std 命名空間,,而是移至 stdext 命名空間。 如需詳細資訊,請參閱 stdext 命名空間

6ewecebk.collapse_all(zh-tw,VS.110).gif建構函式

hash_multimap

建構清單特定大小或具有特定值的項目或與特定 allocator 或做為其他 hash_multimap的複本。

6ewecebk.collapse_all(zh-tw,VS.110).gifTypedef

allocator_type

表示 hash_multimap 物件的 allocator 類別的型別。

const_iterator

提供雙向 Iterator 可讀取 hash_multimap的一個 const 元素的型別。

const_pointer

提供指標給在 hash_multimap的一個 const 元素的型別。

const_reference

提供對 const 項目之參考的型別在讀取及執行 const 作業 hash_multimap 儲存。

const_reverse_iterator

提供雙向 Iterator 可讀取 hash_multimap的所有 const 元素的型別。

difference_type

可以用來表示 hash_multimap 的元素數目一個範圍的項目之間的帶正負號的整數型別指向的 Iterator。

Iterator

提供雙向 Iterator 可讀取或修改 hash_multimap的所有項目的型別。

key_compare

提供函式物件可比較兩個排序鍵判斷兩個項目的相對順序。 hash_multimap的型別。

key_type

描述排序鍵物件撰寫 hash_multimap的每個元素的型別。

mapped_type

表示資料型別的型別。 hash_multimap儲存。

pointer

提供指標給在 hash_multimap的項目型別。

參照

提供項目參考的型別。 hash_multimap儲存。

reverse_iterator

提供雙向 Iterator 可讀取或修改反轉 hash_multimap的項目型別。

size_type

可以表示項目數。 hash_multimap的不帶正負號的整數型別。

value_type

提供函式物件可以比較兩個項目在排序鍵判斷它們在 hash_multimap的相對順序的型別。

6ewecebk.collapse_all(zh-tw,VS.110).gif成員函式

begin

傳回位址的 Iterator。 hash_multimap的第一個項目。

hash_multimap::cbegin

傳回 const 定址的 Iterator。 hash_multimap的第一個項目。

hash_multimap::cend

傳回處理成功最後一個項目位置 hash_multimapconst 的 Iterator。

clear

清除 hash_multimap的所有項目。

count

傳回項目數索引鍵符合參數指定索引鍵的 hash_multimap 的。

hash_multimap::crbegin

傳回 const 定址 Iterator 在反轉 hash_multimap的第一個項目。

hash_multimap::crend

傳回處理成功最後一個項目位置顛倒的 hash_multimapconst 的 Iterator。

hash_multimap::emplace

插入建構的項目就地入 hash_multimap

hash_multimap::emplace_hint

插入建構的項目就地入 hash_multimap,具有位置提示。

empty

測試,如果 hash_multimap 是空的。

end

傳回處理成功最後一個項目位置 hash_multimap的 Iterator。

equal_range

傳回處理成功最後一個項目位置 hash_multimap的 Iterator。

清除

從指定的位置移除項目的範圍。 hash_multimap

find

傳回位址的 Iterator 有索引鍵等於之指定索引鍵之項目的位置。 hash_multimap 的。

get_allocator

傳回用來 allocator 物件的複製建構 hash_multimap

插入

插入項目或某個範圍的 hash_multimap 在指定的位置。

key_comp

擷取在 hash_multimap用來解析順序索引鍵比較物件的複本。

lower_bound

傳回 Iterator 置於與外部索引鍵值等於或大於該特定索引鍵 hash_multimap 的第一個項目。

max_size

傳回 hash_multimap的最大長度。

rbegin

傳回位址的 Iterator 在反轉 hash_multimap的第一個項目。

rend

傳回處理成功最後一個項目位置顛倒的 hash_multimap的 Iterator。

size

hash_multimap指定新的大小。

互換

交換兩 hash_multimaps. 的項目。

upper_bound

傳回 Iterator 置於與外部索引鍵值大於指定的索引鍵 hash_multimap 的第一個項目。

value_comp

擷取在 hash_multimap用來解析命令項目值比較物件的複本。

6ewecebk.collapse_all(zh-tw,VS.110).gif運算子

hash_multimap::operator=

用另一 hash_multimap的複本來取代 hash_multimap 的項目。

需求

標題: <hash_map>

命名空間: stdext

請參閱

參考

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

標準樣板程式庫

其他資源

<hash_map> 成員

hash_multimap 成員