Freigeben über


unordered_map Class

Die Vorlagenklasse beschreibt ein Objekt, das eine VARYINGLENGTH-Folge von Elementen des Typs std::pair<const Key, Ty>steuert.Die Sequenz von schwach ist eine Hashfunktion angeordnet, die Partitionen die Sequenz in eine geordnete Gruppe von Untersequenzen Buckets aufgerufen haben.In jedem Buckets bestimmt eine Vergleichsfunktion, ob ein Paar von Elementen richtige Reihenfolge aufweist.Jedes Element speichert zwei Objekte, einen Sortierschlüssel und einem Wert.Die Sequenz wird so dargestellt, die Suche, Einfügen und Löschen eines beliebigen Elements mit Operationen zulässt, die unabhängig von der Anzahl der Elemente in der Sequenz (konstante Zeit) sein können, mindestens, wenn alle Buckets in der ungefähr gleichen Länge haben.Im schlimmsten Fall, wenn alle Elemente in einem Bucket handelt, ist die Anzahl von Vorgängen auf die Anzahl der Elemente in der Sequenz proportional (lineare Zeit).Darüber hinaus stellt keine ungültigen Einfügen eines Elements und Iteratoren Entfernen eines Elements für ungültig erklärt werden nur die Iteratoren, die am entfernten Element zeigen.

template<class Key,
    class Ty,
    class Hash = std::hash<Key>,
    class Pred = std::equal_to<Key>,
    class Alloc = std::allocator<std::pair<const Key, Ty> > >
    class unordered_map;

Parameter

Parameter

Beschreibung

Key

Der Schlüsseltyp.

Ty

Der zugeordnete Typ.

Hash

Der Hashfunktionsobjekttyp.

Pred

Der equality vergleichsfunktions objekttyp.

Alloc

Die allocator-Klasse.

Mitglieder

Typdefinition

Beschreibung

unordered_map::allocator_type

Der Typ einer Belegungsfunktion zum Verwalten des Speichers.

unordered_map::const_iterator

Der Typ eines konstanten Iterators für die gesteuerte Sequenz.

unordered_map::const_local_iterator

Der Typ eines konstanten Bucket iterators für die gesteuerte Sequenz.

unordered_map::const_pointer

Der Typ eines konstanten Zeigers auf ein Element.

unordered_map::const_reference

Der Typ eines konstanten Verweis auf ein Element.

unordered_map::difference_type

Der Typ eines signierten Lücke zwischen zwei Elementen.

unordered_map::hasher

Der Typ der Hashfunktion.

unordered_map::iterator

Der Typ eines Iterators für die gesteuerte Sequenz.

unordered_map::key_equal

Der Typ der Vergleichsfunktion.

unordered_map::key_type

Der Typ einer Aufträge.

unordered_map::local_iterator

Der Typ eines Bucket iterators für die gesteuerte Sequenz.

unordered_map::mapped_type

Der Typ eines zugeordneten Werts jeder Schlüssel zugeordnet ist.

unordered_map::pointer

Der Typ eines Zeigers auf ein Element.

unordered_map::reference

Der Typ eines Verweises auf ein Element.

unordered_map::size_type

Der Typ einer Lücke zwischen zwei Elementen ohne Vorzeichen.

unordered_map::value_type

Der Typ eines Elements.

Memberfunktion

Beschreibung

hash_map::begin

Sucht ein Element mit dem angegebenen Schlüssel.

unordered_map::begin

Legt den Anfang der kontrollierten Sequenz fest.

unordered_map::bucket

Ruft die Nummer des Bucket für einen Schlüsselwert ab.

unordered_map::bucket_count

Ruft die Anzahl der Buckets ab.

unordered_map::bucket_size

Ruft die Größe eines Buckets ab.

hash_map::begin

Legt den Anfang der kontrollierten Sequenz fest.

hash_map::begin

Legt das Ende der kontrollierten Sequenz fest.

unordered_map::clear

Entfernt alle Elemente.

unordered_map::count

Durchsucht die Anzahl der Elemente, die einem angegebenen Schlüssel entsprechen.

hash_map::begin

Fügt der Auflistung ein Element hinzugefügt, das an der Stelle erstellt wird.

hash_map::begin

Fügt der Auflistung ein Element hinzugefügt, das an der Stelle mit Hinweis erstellt wird.

unordered_map::empty

Überprüft, ob keine Elemente vorhanden sind.

unordered_map::end

Legt das Ende der kontrollierten Sequenz fest.

unordered_map::equal_range

Durchsucht einen Bereich mit dem angegebenen Schlüssel übereinstimmt.

unordered_map::erase

Entfernt Elemente an den angegebenen Positionen.

unordered_map::find

Sucht ein Element, der einem angegebenen Schlüssel entspricht.

unordered_map::get_allocator

Ruft das gespeicherte allocator-Objekt ab.

unordered_map::hash_function

Ruft das gespeicherte Hashfunktions Objekt ab.

unordered_map::insert

Fügt Elemente hinzu.

unordered_map::key_eq

Ruft das gespeicherte Vergleichsfunktions Objekt ab.

unordered_map::load_factor

Zählt die durchschnittlichen Elemente pro Bucket.

unordered_map::max_bucket_count

Ruft die maximale Anzahl der Buckets ab.

unordered_map::max_load_factor

Ruft ab oder legt die maximale Anzahl von Elementen pro Bucket fest.

unordered_map::max_size

Ruft die maximale Größe der kontrollierten Sequenz ab.

unordered_map::rehash

Erstellt die Hashtabelle neu.

unordered_map::size

Ermittelt die Anzahl der Elemente.

unordered_map::swap

Vertauscht den Inhalt von zwei Containern.

unordered_map::unordered_map

Erstellt ein Containerobjekt.

Operator

Beschreibung

unordered_map::operator[]

Sucht oder fügt ein Element mit dem angegebenen Schlüssel ein.

hash_map::begin

Kopiert eine Hashtabelle.

Hinweise

Das Objekt sortiert die Sequenz, die er steuern, indem Sie zwei gespeicherte Objekte aufruft, ein Vergleichsfunktions Objekt vom Typ unordered_map::key_equal und ein Hashfunktions Objekt vom Typ unordered_map::hasher.Sie greifen auf das erste gespeicherte Objekt, indem Sie die Memberfunktion unordered_map::key_eq()aufrufen. Der Zugriff auf und das zweite gespeicherte Objekt, indem Sie die Memberfunktion unordered_map::hash_function()aufrufen.Insbesondere für alle Werte X und Y des Typs Key, gibt der Aufruf key_eq()(X, Y) nur dann True zurück, wenn die beiden Argumentwerte entsprechende Reihenfolge aufweisen. hash_function()(keyval) der Aufruf führt eine Verteilung von Werten des Typs size_t.Im Gegensatz zu einer Vorlagenklasse unordered_multimap Classstellt ein Objekt unordered_map der Vorlagenklasse, dass key_eq()(X, Y) immer für alle zwei Elemente der kontrollierten Sequenz falsch ist.(Schlüssel) eindeutig sind.

Das Objekt enthält auch einen Höchstlast faktor, der das Maximum der gewünschten durchschnittlichen Anzahl von Elementen pro Bucket angegeben wird.Wenn das Einfügen eines Elements unordered_map::load_factorbewirkt,() den Höchstlast faktor überschritten, wird der Container die Anzahl der Buckets und Neuerstellung die Hashtabelle nach Bedarf.

Die tatsächliche Reihenfolge der Elemente in der kontrollierten Sequenz hängt von der Hashfunktion, aus der Vergleichsfunktion, von der Reihenfolge der Einfüge-, aus dem Höchstlast faktor und der aktuellen Anzahl der Buckets ab.Sie können im Allgemeinen die Reihenfolge der Elemente in der kontrollierten Sequenz nicht vorhersagen.Sie können immer gewährleistet werden jedoch, dass eine Teilmenge von Elementen, die entsprechende Reihenfolge, in der kontrollierten Sequenz angrenzend sind.

Das Objekt wird auf und gibt Speicherplatz für die Sequenz frei, die er durch ein gespeichertes allocator-Objekt des Typs unordered_map::allocator_typesteuert.Ein solches allocator-Objekt muss dieselbe externen Schnittstelle wie ein Objekt der Vorlagenklasse allocatorhaben.Beachten Sie, dass das gespeicherte allocator-Objekt nicht kopiert wird, wenn das Containerobjekt zugeordnet wird.

Anforderungen

Header: <unordered_map>

Namespace: std

Siehe auch

Referenz

<unordered_map>

unordered_map Class

Weitere Ressourcen

<unordered_map> Member