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 |
Der Typ einer Belegungsfunktion zum Verwalten des Speichers. |
|
Der Typ eines konstanten Iterators für die gesteuerte Sequenz. |
|
Der Typ eines konstanten Bucketiterators für die gesteuerte Sequenz. |
|
Der Typ eines konstanten Zeigers auf ein Element. |
|
Der Typ eines konstanten Verweis auf ein Element. |
|
Der Typ eines Dunkelgrün mit Vorzeichen zwischen zwei Elementen. |
|
Der Typ der Hashfunktion. |
|
Der Typ eines Iterators für die gesteuerte Sequenz. |
|
Der Typ der Vergleichsfunktion. |
|
Der Typ einer Reihenfolgentaste. |
|
Der Typ eines Bucketiterators für die gesteuerte Sequenz. |
|
Der Typ eines zugeordneten Werts zugeordnete jeder Schlüssel. |
|
Der Typ eines Zeigers auf ein Element. |
|
Der Typ eines Verweises auf ein Element. |
|
Der Typ eines Dunkelgrün ohne Vorzeichen zwischen zwei Elementen. |
|
Der Typ eines Elements. |
Memberfunktion |
Description |
Legt den Anfang der kontrollierten Sequenz fest. |
|
Ruft die Bucketzahl für einen Schlüsselwert ab. |
|
Ruft die Anzahl der Buckets ab. |
|
Ruft die Größe eines Buckets ab. |
|
Legt den Anfang der kontrollierten Sequenz fest. |
|
Legt das Ende der kontrollierten Sequenz fest. |
|
Entfernt alle Elemente. |
|
Sucht die Anzahl von Elementen, die einen angegebenen Schlüssel übereinstimmen. |
|
Fügt ein Element hinzu, das direkt erstellt wird. |
|
Fügt ein Element hinzu, das an der Stelle, mit Hinweis erstellt wird. |
|
Testet, ob keine Elemente vorhanden sind. |
|
Legt das Ende der kontrollierten Sequenz fest. |
|
Suchen reichen die mit einem bestimmten Schlüssel. |
|
Entfernt Elemente an den angegebenen Positionen. |
|
Sucht ein Element, der einem angegebenen Schlüssel entspricht. |
|
Ruft das gespeicherte allocator-Objekt ab. |
|
Ruft das gespeicherte Hashfunktionsobjekt ab. |
|
Fügt Elemente hinzu. |
|
Ruft das gespeicherte Vergleichsfunktionsobjekt ab. |
|
Zählt die durchschnittliche Elemente pro Bucket. |
|
Ruft die maximale Anzahl von Buckets ab. |
|
Ruft ab oder legt die maximalen Elemente pro Bucket fest. |
|
Ruft die maximale Größe der gesteuerten Sequenz ab. |
|
Erstellt die Hashtabelle neu. |
|
Ermittelt die Anzahl der Elemente. |
|
Vertauscht den Inhalt von zwei Containern. |
|
Erstellt ein Containerobjekt. |
Operator |
Description |
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