Sdílet prostřednictvím


unordered_set Class

Popisuje šablony třídy objektu, který řídí různé délky pořadí prvků typu const Key.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 slouží jako 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čtem 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 jednom bloku počet operací je úměrná počtu prvků v posloupnosti (lineární čas).Kromě vkládání prvek přestanou platit žádné u iterátorů a odebrání prvku zruší platnost pouze ty u iterátorů které na odebraný prvek.

template<class Key,
    class Hash = std::hash<Key>,
    class Pred = std::equal_to<Key>,
    class Alloc = std::allocator<Key> >
    class unordered_set;

Parametry

Parametr

Description

Key

Typ klíče.

Hash

Typ objektu funkce hash.

Pred

Typ objektu rovnosti porovnání funkce.

Alloc

Třída přidělování.

Členy

Definice typu

Description

unordered_set::allocator_type

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

unordered_set::const_iterator

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

unordered_set::const_local_iterator

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

unordered_set::const_pointer

Typ konstantní ukazatel na prvek.

unordered_set::const_reference

Typ konstantní odkaz na element.

unordered_set::difference_type

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

unordered_set::hasher

Typ funkce hash.

unordered_set::iterator

Typ iterace řízené posloupnosti.

unordered_set::key_equal

Typ funkce porovnání.

unordered_set::key_type

Typ řazení klíč.

unordered_set::local_iterator

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

unordered_set::pointer

Typ ukazatel na prvek.

unordered_set::reference

Typ odkazu na prvek.

unordered_set::size_type

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

unordered_set::value_type

Typ prvku.

Členská funkce

Description

unordered_set::begin

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

unordered_set::bucket

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

unordered_set::bucket_count

Počet bloků získá.

unordered_set::bucket_size

Velikost bloku získá.

unordered_set::cbegin

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

unordered_set::cend

Označí konci řízené sekvence.

unordered_set::clear

Odebere všechny prvky.

unordered_set::count

Najde zadaný klíč odpovídající počet.

unordered_set::emplace

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

unordered_set::emplace_hint

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

unordered_set::empty

Zkoušky, zda jsou žádné prvky prezentovat.

unordered_set::end

Označí konci řízené sekvence.

unordered_set::equal_range

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

unordered_set::erase

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

unordered_set::find

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

unordered_set::get_allocator

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

unordered_set::hash_function

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

unordered_set::insert

Přidá prvky.

unordered_set::key_eq

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

unordered_set::load_factor

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

unordered_set::max_bucket_count

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

unordered_set::max_load_factor

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

unordered_set::max_size

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

unordered_set::rehash

Znovu vytvoří tabulky hash.

unordered_set::size

Vrátí počet prvků.

unordered_set::swap

Zamění obsah dva kontejnery.

unordered_set::unordered_set

Konstrukce objektu kontejneru.

Operátory

Description

unordered_set::operator=

Zkopíruje tabulky hash.

Poznámky

Objekt objednávky pořadí ovládacích prvků voláním dvě uložené objekty objekt porovnání funkce typu unordered_set::key_equal a objekt hash funkce typu unordered_set::hasher.Přístup k první uložené objekt voláním funkce členské unordered_set::key_eq(); přístup druhý objekt uložené voláním funkce členské unordered_set::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_multiset Class, objekt šablony třídy unordered_set zajišťuje, že key_eq()(X, Y) je vždy false u dvou prvků řízené sekvence.(Klíče jsou jedinečné).

Objekt také ukládá maximální zatížení faktor, které specifikuje že maximální požadovaný průměrný počet prvků na bloku.Pokud způsobí vložení prvku unordered_set::load_factor() kontejner překročit maximální zatížení faktor zvyšuje počet bloků a znovu vytvoří tabulky hash podle potřeby.

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_set::allocator_type.Takový objekt přidělování musí mít stejné externí rozhraní jako objekt šablony třídy allocator.Poznámka: objekt uložené Alokátor se nezkopíruje při přiřazení objektu kontejneru.

Požadavky

Záhlaví: <unordered_set>

Obor názvů: std

Viz také

Referenční dokumentace

<unordered_set>

unordered_set Class

Další zdroje

<unordered_set> Členové