unordered_multimap Class
Popisuje šablony třídy objektu, který řídí různé délky posloupnost prvků typu std::pair<const Key, Ty>.Posloupnost je slabě seřazený podle funkce hash oddíly sekvence do uspořádanou sadu dílčích sekvencí nazývají bloky.V rámci každého bloku porovnání funkce určuje, zda všechny dvojice prvků má, odpovídající pořadí.Každý prvek ukládá dva objekty, klíč řazení a hodnotu.Pořadí je reprezentován způsobem, který umožňuje vyhledávání, vkládání a odstraňování libovolný prvek s počet operací, které mohou být nezávisle na počtu prvků v posloupnosti (konstantní čas), alespoň pokud všechny bloky jsou přibližně stejné délky.V nejhorším případě když jsou všechny prvky v jedné plechovka počet operací je úměrná počtu prvků v posloupnosti (lineární čas).Kromě toho vložení elementu přestanou platit žádné u iterátorů a odebrání prvku zruší platnost budou u pouze ty iterátorů, které na odebraný prvek.
template<class Key,
class Ty,
class Hash = std::tr1::hash<Key>,
class Pred = std::equal_to<Key>,
class Alloc = std::allocator<Key> >
class unordered_multimap;
Parametry
Parametr |
Description |
Key |
Typ klíče. |
Ty |
Mapované typu. |
Hash |
Typ objektu funkce hash. |
Pred |
Typ objektu rovnosti porovnání funkce. |
Alloc |
Třída přidělování. |
Členy
Definice typu |
Description |
Typ přidělování pro správu paměti. |
|
Typ konstantní iterační řízené posloupnosti. |
|
Typ stálých plechovka iterační řízené posloupnosti. |
|
Typ konstantní ukazatel na prvek. |
|
Typ konstantní odkaz na element. |
|
Typ podepsané vzdálenost mezi dvěma prvky. |
|
Typ funkce hash. |
|
Typ iterátoru řízené posloupnosti. |
|
Typ funkce porovnání. |
|
Typ řazení klíč. |
|
Typ bloku iterační řízené posloupnosti. |
|
Typ mapované hodnoty přiřazené každému klíči. |
|
Typ ukazatel na prvek. |
|
Typ odkazu na prvek. |
|
Typ bez znaménka vzdálenost mezi dvěma prvky. |
|
Typ prvku. |
Členská funkce |
Description |
Označí začátek řízené sekvence. |
|
Získá číslo bloku pro hodnotu klíče. |
|
Počet bloků získá. |
|
Velikost bloku získá. |
|
Označí začátek řízené sekvence. |
|
Označí konci řízené sekvence. |
|
Odebere všechny prvky. |
|
Zjistí počet prvků odpovídající zadaným klíčem. |
|
Přidá prvek vyrobeno na místě. |
|
Přidá prvek vyrobeno na místě s nápovědy. |
|
Zkoušky zda žádné prvky prezentovat. |
|
Označí konci řízené sekvence. |
|
Najde rozsah, který odpovídá zadaným klíčem. |
|
Odebere prvky v určených polohách. |
|
Najde zadaný klíč odpovídající prvek. |
|
Načte uložené přidělování objektu. |
|
Načte uložené hodnoty hash funkce objektu. |
|
Přidá prvky. |
|
Načte uložené porovnání funkce objektu. |
|
Spočítá průměrnou prvky za plechovka. |
|
Získává maximální počet bloků. |
|
Získá nebo nastaví maximální prvky za plechovka barvy. |
|
Maximální velikost kontrolované sekvence získá. |
|
Znovu vytvoří tabulky hash. |
|
Vrátí počet prvků. |
|
Zamění obsah dva kontejnery. |
|
Vytvoří objekt kontejneru. |
Operátor |
Description |
Zkopíruje tabulky hash. |
Poznámky
Objekt objednávky sekvence řídí voláním dvě uložené objekty objekt porovnání funkce typu unordered_multimap::key_equal a objekt hash funkce typu unordered_multimap::hasher.Přístup k první uložené objekt voláním funkce členské unordered_multimap::key_eq(); přístup druhý objekt uložené voláním funkce členské unordered_multimap::hash_function().Konkrétně pro všechny hodnoty X a Y typu Key, volání key_eq()(X, Y) vrátí hodnotu true pouze v případě dvou argument hodnoty odpovídající pořadí; volání hash_function()(keyval) vede k rozdělení hodnot typu size_t.Na rozdíl od šablony třídy unordered_map Class, objekt šablony třídy unordered_multimap , nezajišťuje key_eq()(X, Y) je vždy false u dvou prvků řízené sekvence.(Klíče nemusí být jedinečné.)
Objekt také ukládá faktor maximálního zatížení, určující že maximální požadovaný průměrný počet prvků na bloku.Pokud způsobí vložení prvku unordered_multimap::load_factor() překročit maximální zatížení faktor kontejneru zvyšuje počet bloků a v případě potřeby znovu vytvoří tabulky hash.
Skutečné pořadí prvků v řízené posloupnosti závisí na funkci hash funkce porovnání, pořadí vložení, faktor maximálního zatížení a aktuální počet bloků.Obecně nelze předpovědět pořadí prvků v řízené sekvenci.Je vždy možno, však, že všechny dílčí prvky, které mají ekvivalentní objednávání sousedí řízené posloupnosti.
Objekt přidělení a uvolnění úložiště pro sekvence řídí přidělování uložené objektem typu unordered_multimap::allocator_type.Takový objekt přidělování musí mít stejné externí rozhraní jako objekt šablony třídy allocator.Všimněte si, že není objekt uložené přidělování zkopírovány při přiřazení objektu kontejneru.
Požadavky
Záhlaví: <unordered_map>
Obor názvů: std