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 |
Typ přidělování pro správu paměti. |
|
Typ konstantní iterační řízené posloupnosti. |
|
Typ konstantní 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 iterace řízené posloupnosti. |
|
Typ funkce porovnání. |
|
Typ řazení klíč. |
|
Typ bloku iterační řízené posloupnosti. |
|
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. |
|
Najde zadaný klíč odpovídající počet. |
|
Přidá prvek vyrobeno na místě. |
|
Přidá prvek vyrobeno na místě s nápovědy. |
|
Zkoušky, zda jsou žá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. |
|
Konstrukce objektu kontejneru. |
Operátory |
Description |
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