Freigeben über


unordered_set 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_set;

Parameter

Parameter

Beschreibung

Key

Der Schlüsseltyp.

Hash

Der Hashfunktionsobjekttyp.

Pred

Der equality vergleichsfunktions objekttyp.

Alloc

Die allocator-Klasse.

Mitglieder

Typdefinition

Beschreibung

unordered_set::allocator_type

Der Typ einer Belegungsfunktion zum Verwalten des Speichers.

unordered_set::const_iterator

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

unordered_set::const_local_iterator

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

unordered_set::const_pointer

Der Typ eines konstanten Zeigers auf ein Element.

unordered_set::const_reference

Der Typ eines konstanten Verweis auf ein Element.

unordered_set::difference_type

Der Typ eines signierten Lücke zwischen zwei Elementen.

unordered_set::hasher

Der Typ der Hashfunktion.

unordered_set::iterator

Der Typ eines Iterators für die gesteuerte Sequenz.

unordered_set::key_equal

Der Typ der Vergleichsfunktion.

unordered_set::key_type

Der Typ einer Aufträge.

unordered_set::local_iterator

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

unordered_set::pointer

Der Typ eines Zeigers auf ein Element.

unordered_set::reference

Der Typ eines Verweises auf ein Element.

unordered_set::size_type

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

unordered_set::value_type

Der Typ eines Elements.

Memberfunktion

Beschreibung

unordered_set::begin

Legt den Anfang der kontrollierten Sequenz fest.

unordered_set::bucket

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

unordered_set::bucket_count

Ruft die Anzahl der Buckets ab.

unordered_set::bucket_size

Ruft die Größe eines Buckets ab.

unordered_set::cbegin

Legt den Anfang der kontrollierten Sequenz fest.

unordered_set::cend

Legt das Ende der kontrollierten Sequenz fest.

unordered_set::clear

Entfernt alle Elemente.

unordered_set::count

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

unordered_set::emplace

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

unordered_set::emplace_hint

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

unordered_set::empty

Überprüft, ob keine Elemente vorhanden sind.

unordered_set::end

Legt das Ende der kontrollierten Sequenz fest.

unordered_set::equal_range

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

unordered_set::erase

Entfernt Elemente an den angegebenen Positionen.

unordered_set::find

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

unordered_set::get_allocator

Ruft das gespeicherte allocator-Objekt ab.

unordered_set::hash_function

Ruft das gespeicherte Hashfunktions Objekt ab.

unordered_set::insert

Fügt Elemente hinzu.

unordered_set::key_eq

Ruft das gespeicherte Vergleichsfunktions Objekt ab.

unordered_set::load_factor

Zählt die durchschnittlichen Elemente pro Bucket.

unordered_set::max_bucket_count

Ruft die maximale Anzahl der Buckets ab.

unordered_set::max_load_factor

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

unordered_set::max_size

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

unordered_set::rehash

Erstellt die Hashtabelle neu.

unordered_set::size

Ermittelt die Anzahl der Elemente.

unordered_set::swap

Vertauscht den Inhalt von zwei Containern.

unordered_set::unordered_set

Erstellt ein Containerobjekt.

Operatoren

Beschreibung

unordered_set::operator=

Kopiert eine Hashtabelle.

Hinweise

Das Objekt sortiert die Sequenz, die er steuern, indem Sie zwei gespeicherte Objekte aufruft, ein Vergleichsfunktions Objekt vom Typ unordered_set::key_equal und ein Hashfunktions Objekt vom Typ unordered_set::hasher.Sie greifen auf das erste gespeicherte Objekt, indem Sie die Memberfunktion unordered_set::key_eq()aufrufen. Der Zugriff auf und das zweite gespeicherte Objekt, indem Sie die Memberfunktion unordered_set::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_multiset Classstellt ein Objekt unordered_set 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_set::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_set::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

Siehe auch

Referenz

<unordered_set>

unordered_set Class

Weitere Ressourcen

<unordered_set> Member