Freigeben über


unordered_multimap Class

Die Vorlagenklasse beschreibt ein Objekt, das eine VARYINGLänge Sequenz von Elementen des Typs std::pair<const Key, Ty> steuert.Die Sequenz wird schwach durch eine Hashfunktion sortiert, die die Sequenz in eine geordnete Menge Untersequenzen partitioniert, die Buckets aufgerufen werden.In jedem Buckets eine Vergleichsfunktion bestimmt, ob ein Paar von Elementen entsprechende Reihenfolge verfügt.Jedes Element speichert zwei Objekte, einen Sortierschlüssel und einen 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 von der ungefähr gleichen Länge haben.Im schlimmsten Fall alle Elemente in einem Bucket handelt, ist die Anzahl von Vorgängen zur Anzahl der Elemente in der Sequenz proportional (lineare Zeit).Darüber hinaus ein Element Einfügen macht keine Iteratoren ungültig, und ein Element entfernen, macht nur die Iteratoren ungültig die am entfernten Element zeigen.

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

Parameter

Parameter

Description

Key

Der Schlüsseltyp.

Ty

Der zugeordnete Typ.

Hash

Der Hashfunktionsobjekttyp.

Pred

Der Gleichheitsvergleichsfunktionsobjekttyp.

Alloc

Die allocator-Klasse.

Mitglieder

Typdefinition

Description

unordered_multimap::allocator_type

Der Typ einer Belegungsfunktion zum Verwalten des Speichers.

unordered_multimap::const_iterator

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

unordered_multimap::const_local_iterator

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

unordered_multimap::const_pointer

Der Typ eines konstanten Zeigers auf ein Element.

unordered_multimap::const_reference

Der Typ eines konstanten Verweis auf ein Element.

unordered_multimap::difference_type

Der Typ eines Dunkelgrün mit Vorzeichen zwischen zwei Elementen.

unordered_multimap::hasher

Der Typ der Hashfunktion.

unordered_multimap::iterator

Der Typ eines Iterators für die gesteuerte Sequenz.

unordered_multimap::key_equal

Der Typ der Vergleichsfunktion.

unordered_multimap::key_type

Der Typ einer Reihenfolgentaste.

unordered_multimap::local_iterator

Der Typ eines Bucketiterators für die gesteuerte Sequenz.

unordered_multimap::mapped_type

Der Typ eines zugeordneten Werts zugeordnete jeder Schlüssel.

unordered_multimap::pointer

Der Typ eines Zeigers auf ein Element.

unordered_multimap::reference

Der Typ eines Verweises auf ein Element.

unordered_multimap::size_type

Der Typ eines Dunkelgrün ohne Vorzeichen zwischen zwei Elementen.

unordered_multimap::value_type

Der Typ eines Elements.

Memberfunktion

Description

unordered_multimap::begin

Legt den Anfang der kontrollierten Sequenz fest.

unordered_multimap::bucket

Ruft die Bucketzahl für einen Schlüsselwert ab.

unordered_multimap::bucket_count

Ruft die Anzahl der Buckets ab.

unordered_multimap::bucket_size

Ruft die Größe eines Buckets ab.

unordered_multimap::cbegin

Legt den Anfang der kontrollierten Sequenz fest.

unordered_multimap::cend

Legt das Ende der kontrollierten Sequenz fest.

unordered_multimap::clear

Entfernt alle Elemente.

unordered_multimap::count

Sucht die Anzahl von Elementen, die einen angegebenen Schlüssel übereinstimmen.

unordered_multimap::emplace

Fügt ein Element hinzu, das direkt erstellt wird.

unordered_multimap::emplace_hint

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

unordered_multimap::empty

Testet, ob keine Elemente vorhanden sind.

unordered_multimap::end

Legt das Ende der kontrollierten Sequenz fest.

unordered_multimap::equal_range

Suchen reichen die mit einem bestimmten Schlüssel.

unordered_multimap::erase

Entfernt Elemente an den angegebenen Positionen.

unordered_multimap::find

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

unordered_multimap::get_allocator

Ruft das gespeicherte allocator-Objekt ab.

unordered_multimap::hash_function

Ruft das gespeicherte Hashfunktionsobjekt ab.

unordered_multimap::insert

Fügt Elemente hinzu.

unordered_multimap::key_eq

Ruft das gespeicherte Vergleichsfunktionsobjekt ab.

unordered_multimap::load_factor

Zählt die durchschnittliche Elemente pro Bucket.

unordered_multimap::max_bucket_count

Ruft die maximale Anzahl von Buckets ab.

unordered_multimap::max_load_factor

Ruft ab oder legt die maximalen Elemente pro Bucket fest.

unordered_multimap::max_size

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

unordered_multimap::rehash

Erstellt die Hashtabelle neu.

unordered_multimap::size

Ermittelt die Anzahl der Elemente.

unordered_multimap::swap

Vertauscht den Inhalt von zwei Containern.

unordered_multimap::unordered_multimap

Erstellt ein Containerobjekt.

Operator

Description

unordered_multimap::operator=

Kopiert eine Hashtabelle.

Hinweise

Das Objekt sortiert die Sequenz, die es steuert, indem zwei gespeicherte Objekte aufruft, ein Vergleichsfunktionsobjekt des Typs unordered_multimap::key_equal und ein Hashfunktionsobjekt des Typs unordered_multimap::hasher.Sie greifen auf das zuerst gespeicherte Objekt zu, indem Sie die Memberfunktion aufrufen, unordered_multimap::key_eq() und greifen Sie auf das zweite gespeicherte Objekt zu, indem Sie die Memberfunktion unordered_multimap::hash_function() aufrufen.Insbesondere für alle Werte X und Y des Typs Key gibt der Aufruf key_eq()(X, Y) nur true zurück, wenn die beiden Argumentwerte entsprechende Reihenfolge aufweisen; der Aufruf hash_function()(keyval) ergibt eine Verteilung von Werten des Typs size_t.Anders als Vorlagenklasse unordered_map Class, stellt ein Objekt der Vorlagenklasse unordered_multimap nicht, dass key_eq()(X, Y) immer für alle zwei Elemente der Sequenz gesteuerten falsch ist.(Schlüssel, müssen nicht eindeutig sein.)

Das Objekt speichert auch einen Höchstlastfaktor, der die maximal zulässige durchschnittliche Anzahl der gewünschten Elemente pro Bucket angibt.Wenn das Einfügen eines Elements unordered_multimap::load_factor() bewirkt, den Höchstlastfaktor zu überschreiten, erhöht der Container die Anzahl der Buckets und erstellt die Hashtabelle nach Bedarf neu.

Die tatsächliche Reihenfolge der Elemente in der Sequenz gesteuerten hängt von der Hashfunktion, von der Vergleichsfunktion, von der Reihenfolge der Einfüge-, vom Höchstlastfaktor und von der aktuellen Anzahl der Buckets ab.Sie können im Allgemeinen die Reihenfolge der Elemente in der Sequenz gesteuerten nicht vorhergesagt werden.Sie können immer gewährleistet jedoch das jede Teilmenge von Elementen, die entsprechende Reihenfolge haben, in der Sequenz gesteuerten benachbart sind.

Das Objekt belegt und gibt Speicher für die Sequenz frei, die er durch ein gespeichertes allocator-Objekt des Typs unordered_multimap::allocator_type steuert.Ein solches allocator-Objekt muss die gleiche externe Schnittstelle wie ein Objekt der Vorlagenklasse allocator haben.Beachten Sie, dass die gespeicherte allocator-Objekt nicht kopiert wird, wenn das Containerobjekt zugewiesen wird.

Anforderungen

Header: <unordered_map>

Namespace: std

Siehe auch

Referenz

<unordered_map>

unordered_multimap Class