Sdílet prostřednictvím


hash_set (STL/CLR)

Popisuje šablony třídy objektu, který řídí různé délky posloupnost prvků, která má obousměrný přístup.Použití kontejneru hash_set spravovat pořadí prvků jako tabulky hash každé položky tabulky obousměrným ukládání propojený seznam uzlů a každý uzel ukládání jeden prvek.Hodnota každého prvku slouží jako klíč pro pořadí řazení.

V popisu níže GValue je stejný jako GKey, který je stejný jako Key , není tento typ odkazu, v takovém případě je Key^.

template<typename Key>
    ref class hash_set
        :   public
        System::ICloneable,
        System::Collections::IEnumerable,
        System::Collections::ICollection,
        System::Collections::Generic::IEnumerable<GValue>,
        System::Collections::Generic::ICollection<GValue>,
        System::Collections::Generic::IList<GValue>,
        Microsoft::VisualC::StlClr::IHash<Gkey, GValue>
    { ..... };

Parametry

  • Klíč
    Typ klíče součásti prvku řízené sekvence.

Členy

Definice typu

Description

hash_set::const_iterator (STL/CLR)

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

hash_set::const_reference (STL/CLR)

Typ konstantní odkaz na element.

hash_set::const_reverse_iterator (STL/CLR)

Typ konstantní zpětného iterační řízené posloupnosti.

hash_set::difference_type (STL/CLR)

Typ (případně podepsaný) vzdálenost mezi dvěma prvky.

hash_set::generic_container (STL/CLR)

Typ kontejneru obecné rozhraní.

hash_set::generic_iterator (STL/CLR)

Typ iterace obecné rozhraní pro kontejner.

hash_set::generic_reverse_iterator (STL/CLR)

Typ zpětného iterační obecné rozhraní pro kontejner.

hash_set::generic_value (STL/CLR)

Typ prvku obecné rozhraní kontejneru.

hash_set::hasher (STL/CLR)

Hash delegát pro klíč.

hash_set::iterator (STL/CLR)

Typ iterace řízené posloupnosti.

hash_set::key_compare (STL/CLR)

Objednávání delegát dva klíče.

hash_set::key_type (STL/CLR)

Typ řazení klíč.

hash_set::Reference (STL/CLR)

Typ odkazu na prvek.

hash_set::reverse_iterator (STL/CLR)

Typ zpětného iterační řízené posloupnosti.

hash_set::size_type (STL/CLR)

Typ (kladné) vzdálenost mezi dvěma prvky.

hash_set::value_compare (STL/CLR)

Objednávání delegát dvě hodnoty prvku.

hash_set::value_type (STL/CLR)

Typ prvku.

Členská funkce

Description

hash_set::begin (STL/CLR)

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

hash_set::bucket_count (STL/CLR)

Vrátí počet bloků.

hash_set::clear (STL/CLR)

Odebere všechny prvky.

hash_set::count (STL/CLR)

Zadaný klíč odpovídající počítá.

hash_set::empty (STL/CLR)

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

hash_set::end (STL/CLR)

Označí konec řízené sekvence.

hash_set::equal_range (STL/CLR)

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

hash_set::erase (STL/CLR)

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

hash_set::find (STL/CLR)

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

hash_set::hash_delegate (STL/CLR)

Zkopíruje hash delegát pro klíč.

hash_set::hash_set (STL/CLR)

Konstrukce objektu kontejneru.

hash_set::insert (STL/CLR)

Přidá prvky.

hash_set::key_comp (STL/CLR)

Zkopíruje objednávání delegáta pro dva klíče.

hash_set::load_factor (STL/CLR)

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

hash_set::lower_bound (STL/CLR)

Vyhledá začátek rozsahu, který odpovídá zadaným klíčem.

hash_set::make_value (STL/CLR)

Vytvoří objekt hodnoty.

hash_set::max_load_factor (STL/CLR)

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

hash_set::rbegin (STL/CLR)

Označí začátek řízené obrácené pořadí.

hash_set::rehash (STL/CLR)

Znovu vytvoří tabulky hash.

hash_set::rend (STL/CLR)

Označí konec obrácené pořadí řízené.

hash_set::size (STL/CLR)

Vrátí počet prvků.

hash_set::swap (STL/CLR)

Zamění obsah dva kontejnery.

hash_set::to_array (STL/CLR)

Řízené sekvence se zkopíruje do nového pole.

hash_set::upper_bound (STL/CLR)

Vyhledá konec rozsahu, který odpovídá zadaným klíčem.

hash_set::value_comp (STL/CLR)

Zkopíruje objednávání delegáta pro dvě hodnoty prvku.

Operátor

Description

hash_set::operator= (STL/CLR)

Nahradí řízené sekvence.

Rozhraní

Rozhraní

Description

ICloneable

Duplikujte objekt.

IEnumerable

Úsek mezi prvky.

ICollection

Zachovat skupiny prvků.

IEnumerable<T>

Pořadové prostřednictvím typové prvky.

ICollection<T>

Zachovat skupiny zadané prvků.

IHash < klíč, hodnota >

Udržují generic kontejneru.

Poznámky

Objekt přiděluje a uvolní úložiště pro sekvence, které ovládá jako jednotlivé uzly v propojeném seznamu obousměrné.Urychlit přístup také různé délky pole ukazatelů do seznamu (tabulka hash) efektivní správě celý seznam jako posloupnost podseznamy, udržuje nebo objektu buckets.Prvky se vloží do bloku, který udržuje uspořádaný změnou propojení mezi uzly nikdy zkopírováním obsahu z jednoho uzlu do druhého.To znamená, můžete vložit a odebrat prvky volně bez narušení zbývající prvky.

Objekt objednávky každého bloku ovládací prvky voláním uložené delegát objekt typu hash_set::key_compare (STL/CLR).Můžete určit objekt uložených delegátem při konstrukci hash_set; Pokud nezadáte žádný objekt delegáta, výchozí hodnota je srovnání operator<=(key_type, key_type).

Přístup k objektu uložených delegátem voláním funkce členské hash_set::key_comp (STL/CLR)().Takový objekt delegát musí definovat řazení rovnocenné mezi klíče typu hash_set::key_type (STL/CLR).To znamená pro všechny dva klíče X a Y:

key_comp()(X, Y)Vrátí výsledek stejný Boolean při každém volání.

Pokud key_comp()(X, Y) && key_comp()(Y, X) je PRAVDA, pak X a Y jsou označeny mít rovnocenné objednávání.

Objednávání pravidla, která se chová jako operator<=(key_type, key_type), operator>=(key_type, key_type) nebo operator==(key_type, key_type) definuje pořadí eqivalent.

Všimněte si, že kontejner zajišťuje pouze prvky jejichž klíče mají ekvivalentní řazení (a které hash na stejnou hodnotu celé číslo) sousedících v sadě.Na rozdíl od šablony třídy hash_multiset (STL/CLR), objekt šablony třídy hash_set zajišťuje jedinečné klíče pro všechny prvky.(Žádné dva klíče mají ekvivalentní objednávání.)

Určuje objekt bloku, který by měl obsahovat daný klíč řazení voláním uložené delegát objekt typu hash_set::hasher (STL/CLR).Přístup k objektu uložených voláním funkce členské hash_set::hash_delegate (STL/CLR)() získání celočíselnou hodnotu, která závisí na hodnotě klíče.Můžete určit objekt uložených delegátem při konstrukci hash_set; Pokud nezadáte žádný objekt delegáta, ve výchozím nastavení je funkce System::Object::hash_value(key_type).To znamená pro všechny klíče X a Y:

hash_delegate()(X)Při každém volání vrátí stejný výsledek celé číslo.

Pokud X a Y mít rovnocenné objednávání, pak hash_delegate()(X) by vrátí stejný výsledek jako celé číslo hash_delegate()(Y).

Každý prvek slouží jako klíč 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ý je nezávislý na počtu prvků v posloupnosti (konstantní času)--alespoň v nejlepším případě.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.

Pokud hodnoty hash hodnoty nejsou distribuovány jednotně, však lze degenerate tabulky hash.V extrémních--pro funkci hash, který vždy vrátí stejnou hodnotu--vyhledávání, vkládání a odstraňování jsou úměrné počtu prvků v posloupnosti (lineární čas).Endeavors kontejner zvolit funkci hash přiměřené, plechovka střední velikost a velikost tabulky hash (celkový počet bloků), ale můžete změnit některé nebo všechny tyto volby.Viz například funkce hash_set::max_load_factor (STL/CLR) a hash_set::rehash (STL/CLR).

Hash_set podporuje obousměrný u iterátorů, což znamená, že můžete na sousedící prvky uvedené iterace, který určuje prvek řízené postupně krok.Zvláštní hlavního uzlu odpovídá iterační vrácené hash_set::end (STL/CLR)().Tento iterační dosáhnout poslední prvek v pořadí řízené lze snížit přítomen.Můžete zvýšit iterační hash_set k dosažení hlavního uzlu a potom bude porovnávat rovno end().Ale nelze zrušit reference struktury iterace vrácené end().

Všimněte si, že nelze odkazovat přímo dané číselné pozice--vyžadující iterační random access hash_set prvku.

Hash_set iterační uloží popisovač uzlu přidružené hash_set jeho zase uloží popisovač jeho přidružené kontejneru.U iterátorů lze použít pouze jejich přidružené kontejneru objektů.Hash_set iterační zůstává v platnosti tak dlouho, dokud je spojen s hash_set některé jeho přidružené hash_set uzlu.Kromě toho je platný iterační dereferencable – slouží k přístupu nebo změnit hodnotu prvku jmenuje--tak dlouho, dokud není rovno end().

Mazání nebo odebrání prvku volá jeho uložená hodnota se objekt.Zničení kontejneru vymaže všechny prvky.Kontejner, jehož typ prvku je třída ref tedy zajišťuje, že outlive žádné prvky kontejneru.Upozorňujeme však, že kontejner úchyty nemá not zničit jeho prvky.

Požadavky

Záhlaví: < cliext/hash_set >

Obor názvů: cliext

Viz také

Referenční dokumentace

hash_map (STL/CLR)

hash_set (STL/CLR)

hash_set (STL/CLR)

map (STL/CLR)

set (STL/CLR)

set (STL/CLR)

set (STL/CLR)

Další zdroje

Reference knihovny STL/CLR