Sdílet prostřednictvím


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

unordered_multimap::allocator_type

Typ přidělování pro správu paměti.

unordered_multimap::const_iterator

Typ konstantní iterační řízené posloupnosti.

unordered_multimap::const_local_iterator

Typ stálých plechovka iterační řízené posloupnosti.

unordered_multimap::const_pointer

Typ konstantní ukazatel na prvek.

unordered_multimap::const_reference

Typ konstantní odkaz na element.

unordered_multimap::difference_type

Typ podepsané vzdálenost mezi dvěma prvky.

unordered_multimap::hasher

Typ funkce hash.

unordered_multimap::iterator

Typ iterátoru řízené posloupnosti.

unordered_multimap::key_equal

Typ funkce porovnání.

unordered_multimap::key_type

Typ řazení klíč.

unordered_multimap::local_iterator

Typ bloku iterační řízené posloupnosti.

unordered_multimap::mapped_type

Typ mapované hodnoty přiřazené každému klíči.

unordered_multimap::pointer

Typ ukazatel na prvek.

unordered_multimap::reference

Typ odkazu na prvek.

unordered_multimap::size_type

Typ bez znaménka vzdálenost mezi dvěma prvky.

unordered_multimap::value_type

Typ prvku.

Členská funkce

Description

unordered_multimap::begin

Označí začátek řízené sekvence.

unordered_multimap::bucket

Získá číslo bloku pro hodnotu klíče.

unordered_multimap::bucket_count

Počet bloků získá.

unordered_multimap::bucket_size

Velikost bloku získá.

unordered_multimap::cbegin

Označí začátek řízené sekvence.

unordered_multimap::cend

Označí konci řízené sekvence.

unordered_multimap::clear

Odebere všechny prvky.

unordered_multimap::count

Zjistí počet prvků odpovídající zadaným klíčem.

unordered_multimap::emplace

Přidá prvek vyrobeno na místě.

unordered_multimap::emplace_hint

Přidá prvek vyrobeno na místě s nápovědy.

unordered_multimap::empty

Zkoušky zda žádné prvky prezentovat.

unordered_multimap::end

Označí konci řízené sekvence.

unordered_multimap::equal_range

Najde rozsah, který odpovídá zadaným klíčem.

unordered_multimap::erase

Odebere prvky v určených polohách.

unordered_multimap::find

Najde zadaný klíč odpovídající prvek.

unordered_multimap::get_allocator

Načte uložené přidělování objektu.

unordered_multimap::hash_function

Načte uložené hodnoty hash funkce objektu.

unordered_multimap::insert

Přidá prvky.

unordered_multimap::key_eq

Načte uložené porovnání funkce objektu.

unordered_multimap::load_factor

Spočítá průměrnou prvky za plechovka.

unordered_multimap::max_bucket_count

Získává maximální počet bloků.

unordered_multimap::max_load_factor

Získá nebo nastaví maximální prvky za plechovka barvy.

unordered_multimap::max_size

Maximální velikost kontrolované sekvence získá.

unordered_multimap::rehash

Znovu vytvoří tabulky hash.

unordered_multimap::size

Vrátí počet prvků.

unordered_multimap::swap

Zamění obsah dva kontejnery.

unordered_multimap::unordered_multimap

Vytvoří objekt kontejneru.

Operátor

Description

unordered_multimap::operator=

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

Viz také

Referenční dokumentace

<unordered_map>

unordered_multimap Class