Sdílet prostřednictvím


hash_multimap Class

[!POZNÁMKA]

Toto rozhraní API je zastaralé.Alternativou je unordered_multimap Class.

Hash_multimap třídy kontejneru je rozšíření knihovny standardních šablon a slouží k ukládání a rychlé načítání dat z kolekce, ve kterém každý prvek je pár, který má klíč řazení, jehož hodnota nemusí být jedinečné a přidružené datové hodnoty.

template <
   class Key, 
   class Type, 
   class Traits=hash_compare<Key, less<Key> >, 
   class Allocator=allocator<pair <const Key, Type> > 
>
class hash_multimap

Parametry

  • Klíč
    Typ dat klíče uložené v hash_multimap.

  • Typ
    Typ dat prvku uloženy v hash_multimap.

  • Traits
    Typ, který obsahuje dvě funkce objektů třídy Vlastnosti je možné porovnat dvě hodnoty elementu jako klíče řazení určit jejich relativní pořadí a funkce hash, která je unární predikát nepodepsané celá typ mapování hodnoty klíče prvků size_t.Tento argument je nepovinný a hash_compare*< klíč, méně <Key> >* Výchozí hodnota je.

  • Allocator
    Typ, který představuje uloženou přidělování objekt, který zapouzdřuje informace o přidělování a navracení zpět paměti hash_multimap.Tento argument je nepovinný a výchozí hodnota je přidělování*<*pair *<*const klíče, zadejte > >.

Poznámky

Hash_multimap je:

  • Asociativní kontejneru, které proměnné velikosti kontejneru, který podporuje efektivní načtení hodnoty elementu podle přidružené klíče hodnoty.

  • Vrátit zpět, protože poskytuje obousměrný iterátor přístup k jeho prvky.

  • Hešováno, protože jeho prvky jsou seskupeny do bloků na základě hodnoty hash funkce použity hodnoty klíče prvků.

  • Více, protože jeho prvky nemusí mít jedinečné klíče tak, aby jedna hodnota klíče mohou mít mnoho hodnot dat prvek přidružen.

  • Pár asociativní kontejneru, protože jeho hodnoty prvku se liší od jeho hodnoty klíče.

  • Třídu šablony, protože poskytuje funkce je obecný a tak nezávislé na konkrétní typ dat obsažených prvků nebo klíče.Datové typy pro klíče a prvky jsou, místo toho zadány jako parametry v šabloně třídy a funkce porovnání a přidělování.

Hlavní výhodou hash přes řazení je větší účinnost; úspěšné hash provádí vkládání, odstraňování a vyhledá v konstantní Průměrná doba srovnání času úměrné logaritmu počtu prvků v kontejneru pro třídění technik.Hodnota elementu v hash_multimap, ale není jeho přidruženou hodnotu klíče, mohou být změněny přímo.Místo toho hodnoty klíče přidruženého staré prvky musí být odstraněna a nové hodnoty klíče přidruženého vloženy nové prvky.

Volba typu kontejner by obecně založené na typu hledání a vložením požadovaného aplikací.Hash asociativní kontejnery jsou optimalizovány pro operace vyhledávání, vkládání a odstraňování.Členské funkce, které explicitně podporují tyto operace jsou účinné při použití funkce hash dobře, jejich provedení v čase, který je v průměru konstantní a není závislá na počtu prvků v kontejneru.Funkce hash dobře vytváří rovnoměrné rozdělení hodnot hash hodnoty a minimalizuje počet kolizím, kde se říká srážky při odlišné hodnoty klíče jsou mapovány na stejnou hodnotu hash.V nejhorším případě nejhorší možné hash funkce počet operací je úměrná počtu prvků v pořadí (lineární čas).

Hash_multimap by měl být asociativní kontejneru voleb jsou splněny podmínky jejich klíče Přiřazení hodnoty aplikací.Model pro tento typ struktury je seřazený seznam klíčová slova přidružené řetězcové hodnoty poskytující, vyslovte, definice, kde nebyly vždy jednoznačně definovány slova.Pokud místo toho klíčová slova byly jednoznačně definovány tak, aby byly jedinečné klíče, by hash_map kontejner voleb.Pokud na druhé straně byly uloženy v seznamu slov, by hash_set správné kontejneru.Pokud bylo povoleno více výskytů slova, by hash_multiset struktura odpovídající kontejner.

Pořadí řídí voláním uložené hodnoty hash objednávky hash_multimap Vlastnosti objekt typu value_compare.Tento objekt uložené mohou přistupovat voláním členské funkce key_comp.Funkce objektu musí se chovají stejně jako objekt třídy hash_compare< klíče méně*<Key> >.Konkrétně pro všechny hodnoty _Key typu klíče, volání Vlastnosti(_Key)* dává rozdělení hodnot typu size_t.

Obecně třeba zavést tuto objednávku pouze menší než srovnatelné prvky: aby dána dvěma prvky, jej může být stanoven jsou rovnocenné (v tom smyslu, že ani menší než jiný) nebo že jeden je menší než ostatní.Výsledkem řazení mezi prvky nejsou rovnocenné.Na další technické poznámky je funkce porovnání binárního predikátu, která indukuje přísné slabé řazení do standardní matematické smysl.Binárního predikátu f(x,y) je funkce objektu, který má dva objekty argumentu x a y a vrácená hodnota true nebo false.Řazení uložených hash_multimap je přísné slabým objednání Pokud binárního predikátu nereflexivní antisymetrického a přenositelné a pokud rovnocennosti přenosné, kde dva objekty x a y jsou definovány jako rovnocenné, kdy obě f(x,y) a f(y,x) jsou nepravdivé.Pokud silnější podmínku rovnosti mezi klíči nahradí, rovnocennosti, řazení se stane celkem (v tom smyslu, že jsou všechny prvky uspořádány k sobě) a odpovídající klíče budou od sebe indiscernible.

Skutečné pořadí prvků v řízené sekvenci závisí na funkci hash funkce řazení a aktuální velikost tabulky hash uložené v objektu kontejneru.Aktuální velikost tabulky hash nelze určit tak pořadí prvků v řízené sekvenci nelze předpovědět obecně.Vkládání prvků přestanou platit žádné iterátorů a odebrání prvků zruší platnost pouze iterátory, které bylo výslovně nepočítá prvky odstraněny.

Obousměrný iterátor, ale členské funkce třídy je iterátor poskytuje třídy hash_multimap Vložit a hash_multimap verzemi vzít jako parametry šablony slabší vstupní iterátor, jehož funkce požadavky jsou minimální více než zaručené třídou obousměrných iterátorů.Formulář iterátor odlišné koncepty vztahují zpřesnění jejich funkčnosti rodiny.Každý iterátor pojem má svou vlastní hash_multimap požadavky a algoritmy, které s nimi pracovat, musí omezit jejich předpoklady podle typu iterator požadavky.Může předpokládat, že může přímo odkázat vstupní iterátor odkázat na některý objekt a může být zvýšena na iterátor další v pořadí.Toto je minimální hash_multimap funkce, ale je dost moci hovořit o rozsahu iterátorů srozumitelně [_First, _Last) v rámci členské funkce.

V aplikaci Visual C++ .NET 2003, členové <hash_map> a <hash_set> jsou již v oboru názvů std soubory hlaviček, ale spíše být přesunut do oboru názvů stdext.Viz stdext obor názvů Další informace.

6ewecebk.collapse_all(cs-cz,VS.110).gifKonstruktory

hash_multimap

Sestaví seznam určitou velikost nebo s prvky konkrétní hodnotu nebo s určitým allocator nebo jako kopie některých jiných hash_multimap.

6ewecebk.collapse_all(cs-cz,VS.110).gifFunkce TypeDef

allocator_type

Typ, který představuje allocator pro třídu hash_multimap objektu.

const_iterator

Typ, který poskytuje obousměrný iterátor, která mohou číst const prvek hash_multimap.

const_pointer

Typ, který obsahuje ukazatel const element v hash_multimap.

const_reference

Typ, který poskytuje odkaz na const element uložené v hash_multimap pro čtení a provádění const operace.

const_reverse_iterator

Typ, který poskytuje obousměrný iterátor, která mohou číst všechny const prvek hash_multimap.

difference_type

Použitý představující počet prvků typu se znaménkem hash_multimap v rozsahu mezi prvky odkazuje iterátorů.

iterace

Typ, který poskytuje obousměrný iterátor, který lze číst nebo upravovat libovolný prvek v hash_multimap.

key_compare

Typ, který poskytuje funkce objektu, který lze porovnat dva klíče řazení určit relativní pořadí dvou prvků hash_multimap.

key_type

Typ, který popisuje objekt klíče řazení, který představuje každý prvek hash_multimap.

mapped_type

Typ, který představuje typ dat uložených v hash_multimap.

ukazatel

Typ, který obsahuje ukazatel na prvek hash_multimap.

odkaz

Typ, který poskytuje odkaz na element v uložených hash_multimap.

reverse_iterator

Typ, který poskytuje obousměrný iterátor, který lze číst nebo upravovat prvek Stornovaná hash_multimap.

size_type

Typ unsigned integer představující počet prvků v hash_multimap.

value_type

Typ, který poskytuje funkce objektu, který lze porovnat dva prvky jako klíče řazení určit jejich relativní pořadí hash_multimap.

6ewecebk.collapse_all(cs-cz,VS.110).gifČlenské funkce

začít

Vrátí iterace adresování první prvek hash_multimap.

hash_multimap::cbegin

Vrátí const iterátor adresování první prvek hash_multimap.

hash_multimap::cend

Vrátí const iterátor, který řeší umístění následných posledního prvku hash_multimap.

Vymazat

Vymaže všechny prvky hash_multimap.

počet

Vrátí počet prvků hash_multimap klíč, jehož shoduje s klíčem zadán parametr.

hash_multimap::crbegin

Vrátí const iterátor adresování první prvek Stornovaná hash_multimap.

hash_multimap::crend

Vrátí const iterátor, který řeší umístění následných poslední prvek v reverzní hash_multimap.

hash_multimap::emplace

Vloží prvek konstruovány do místa hash_multimap.

hash_multimap::emplace_hint

Vloží prvek vyrobeno na místě do hash_multimap, s umístění nápovědy.

prázdné

Pokud testy hash_multimap je prázdný.

Konec

Vrátí iterátor, který řeší umístění následných posledního prvku hash_multimap.

equal_range

Vrátí iterátor, který řeší umístění následných posledního prvku hash_multimap.

Vymazat

Odebere prvek nebo rozsahu prvků v hash_multimap od zadané pozice

Najít

Vrátí iterace adresování umístění prvku v hash_multimap , který má zadaný klíč odpovídající klíč.

get_allocator

Vrátí kopii allocator používá k vytvoření objektu hash_multimap.

Vložit

Vloží element nebo elementy do oblasti hash_multimap na určené pozici.

key_comp

Získá kopii objektu porovnání, používá pořadí klíče hash_multimap.

lower_bound

Vrátí iterace první prvek hash_multimap , že klíč hodnota je rovna nebo větší než zadaný klíč.

max_size

Vrátí maximální délku hash_multimap.

rbegin

Vrátí iterace adresování první prvek Stornovaná hash_multimap.

rend

Vrátí iterátor, který řeší umístění následných poslední prvek v reverzní hash_multimap.

size

Určuje novou velikost hash_multimap.

odkládací

Výměny prvky dvou hash_multimaps.

upper_bound

Vrátí iterace první prvek hash_multimap , že klíč hodnota je větší než zadaný klíč.

value_comp

Získá kopii používá pořadí hodnot element v objektu porovnání hash_multimap.

6ewecebk.collapse_all(cs-cz,VS.110).gifOperátory

hash_multimap::operator=

Nahradí prvky hash_multimap s kopií jiného hash_multimap.

Požadavky

Záhlaví: <hash_map>

Obor názvů: stdext

Viz také

Referenční dokumentace

Bezpečnostní vlákno v Standardní knihovna C++

Standardní šablona knihovny

Další zdroje

<hash_map> Členové

hash_multimap členů