unordered_multiset Class
Die Vorlagenklasse beschreibt ein Objekt, das eine VARYINGLENGTH-Folge von Elementen des Typs const Keysteuert.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 wird als Sortierschlüssel und 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 Hash = std::hash<Key>,
class Pred = std::equal_to<Key>,
class Alloc = std::allocator<Key> >
class unordered_multiset;
Parameter
Parameter |
Beschreibung |
Key |
Der Schlüsseltyp. |
Hash |
Der Hashfunktionsobjekttyp. |
Pred |
Der equality vergleichsfunktions objekttyp. |
Alloc |
Die allocator-Klasse. |
Mitglieder
Typdefinition |
Beschreibung |
Der Typ einer Belegungsfunktion zum Verwalten des Speichers. |
|
Der Typ eines konstanten Iterators für die gesteuerte Sequenz. |
|
Der Typ eines konstanten Bucket iterators für die gesteuerte Sequenz. |
|
Der Typ eines konstanten Zeigers auf ein Element. |
|
Der Typ eines konstanten Verweis auf ein Element. |
|
Der Typ eines signierten Lücke zwischen zwei Elementen. |
|
Der Typ der Hashfunktion. |
|
Der Typ eines Iterators für die gesteuerte Sequenz. |
|
Der Typ der Vergleichsfunktion. |
|
Der Typ einer Aufträge. |
|
Der Typ eines Bucket iterators für die gesteuerte Sequenz. |
|
Der Typ eines Zeigers auf ein Element. |
|
Der Typ eines Verweises auf ein Element. |
|
Der Typ einer Lücke zwischen zwei Elementen ohne Vorzeichen. |
|
Der Typ eines Elements. |
Memberfunktion |
Beschreibung |
Legt den Anfang der kontrollierten Sequenz fest. |
|
Ruft die Nummer des Bucket 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. |
|
Durchsucht die Anzahl der Elemente, die einem angegebenen Schlüssel entsprechen. |
|
Fügt der Auflistung ein Element hinzugefügt, das an der Stelle erstellt wird. |
|
Fügt der Auflistung ein Element hinzugefügt, das an der Stelle mit Hinweis erstellt wird. |
|
Überprüft, ob keine Elemente vorhanden sind. |
|
Legt das Ende der kontrollierten Sequenz fest. |
|
Durchsucht einen Bereich mit dem angegebenen Schlüssel übereinstimmt. |
|
Entfernt Elemente an den angegebenen Positionen. |
|
Sucht ein Element, der einem angegebenen Schlüssel entspricht. |
|
Ruft das gespeicherte allocator-Objekt ab. |
|
Ruft das gespeicherte Hashfunktions Objekt ab. |
|
Fügt Elemente hinzu. |
|
Ruft das gespeicherte Vergleichsfunktions Objekt ab. |
|
Zählt die durchschnittlichen Elemente pro Bucket. |
|
Ruft die maximale Anzahl der Buckets ab. |
|
Ruft ab oder legt die maximale Anzahl von Elementen pro Bucket fest. |
|
Ruft die maximale Größe der kontrollierten Sequenz ab. |
|
Erstellt die Hashtabelle neu. |
|
Ermittelt die Anzahl der Elemente. |
|
Vertauscht den Inhalt von zwei Containern. |
|
Erstellt ein Containerobjekt. |
Operator |
Beschreibung |
Kopiert eine Hashtabelle. |
Hinweise
Das Objekt sortiert die Sequenz, die er steuern, indem Sie zwei gespeicherte Objekte aufruft, ein Vergleichsfunktions Objekt vom Typ unordered_multiset::key_equal und ein Hashfunktions Objekt vom Typ unordered_multiset::hasher.Sie greifen auf das erste gespeicherte Objekt, indem Sie die Memberfunktion unordered_multiset::key_eq()aufrufen. Der Zugriff auf und das zweite gespeicherte Objekt, indem Sie die Memberfunktion unordered_multiset::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_set Classstellt ein Objekt unordered_multiset der Vorlagenklasse nicht, dass key_eq()(X, Y) immer für alle zwei Elemente der kontrollierten Sequenz falsch ist.(Schlüssel müssen nicht eindeutig sein.)
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_multiset::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_multiset::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_set>
Namespace: std