Freigeben über


multiset (STL/CLR)

Die Vorlagenklasse beschreibt ein Objekt, das eine VARYINGLängen-Folge von Elementen steuert, die bidirektionalen Zugriff hat. Mit dem Container multiset, um eine Sequenz von Elementen als WIQ-Datei zu verwalten (fast) ausglichen geordneter Struktur von Knoten, jedem speichernden Element.

In der unten stehenden Beschreibung, GValue ist das GKey identisch, das wiederum das Key identisch ist, es sei denn, das zweite ein Referenz-Typ ist, in diesem Fall Key^ dar.

template<typename Key>
    ref class multiset
        :   public
        System::ICloneable,
        System::Collections::IEnumerable,
        System::Collections::ICollection,
        System::Collections::Generic::IEnumerable<GValue>,
        System::Collections::Generic::ICollection<GValue>,
        System::Collections::Generic::IList<GValue>,
        Microsoft::VisualC::StlClr::ITree<Gkey, GValue>
    { ..... };

Parameter

  • Key
    Der Typ der Schlüsselkomponente eines Elements in der kontrollierten Sequenz.

Member

Typdefinition

Beschreibung

multiset::const_iterator (STL/CLR)

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

multiset::const_reference (STL/CLR)

Der Typ eines konstanten Verweises auf ein Element.

multiset::const_reverse_iterator (STL/CLR)

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

multiset::difference_type (STL/CLR)

Der Typ der Abstand eine (möglicherweise mit Vorzeichen) zwischen zwei Elementen.

multiset::generic_container (STL/CLR)

Der Typ der generischen Schnittstelle für den Container.

multiset::generic_iterator (STL/CLR)

Der Typ eines Iterators für die generische Schnittstelle für den Container.

multiset::generic_reverse_iterator (STL/CLR)

Der Typ eines umgekehrten Iterators für die generische Schnittstelle für den Container.

multiset::generic_value (STL/CLR)

Der Typ des Elements für die generische Schnittstelle für den Container.

multiset::iterator (STL/CLR)

Der Typ eines Iterators für die gesteuerte Sequenz.

multiset::key_compare (STL/CLR)

Der Reihenfolgendelegat für zwei Schlüssel.

multiset::key_type (STL/CLR)

Der Typ eines Sortierschlüssels.

multiset::reference (STL/CLR)

Der Typ eines Verweises auf ein Element.

multiset::reverse_iterator (STL/CLR)

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

multiset::size_type (STL/CLR)

Der Typ (nicht negative a) Abstands zwischen zwei Elementen.

multiset::value_compare (STL/CLR)

Der Reihenfolgendelegat für zwei Elementwerte.

multiset::value_type (STL/CLR)

Der Typ eines Elements.

Memberfunktion

Beschreibung

multiset::begin (STL/CLR)

Legt den Anfang der kontrollierten Sequenz fest.

multiset::clear (STL/CLR)

Entfernt alle Elemente.

multiset::count (STL/CLR)

Zählt die Elemente, die einen angegebenen Schlüssel übereinstimmen.

multiset::empty (STL/CLR)

Testet, dass keine Elemente vorhanden sind.

multiset::end (STL/CLR)

Legt das Ende der kontrollierten Sequenz fest.

multiset::equal_range (STL/CLR)

Suchen reichen die mit einem bestimmten Schlüssel.

multiset::erase (STL/CLR)

Entfernt Elemente an den angegebenen Positionen.

multiset::find (STL/CLR)

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

multiset::insert (STL/CLR)

Fügt Elemente hinzu.

multiset::key_comp (STL/CLR)

Kopiert den Reihenfolgendelegaten für zwei Schlüssel.

multiset::lower_bound (STL/CLR)

Sucht Anfang des Bereichs, der einen angegebenen Schlüssel entspricht.

multiset::make_value (STL/CLR)

Erstellt ein Wertobjekt.

multiset::multiset (STL/CLR)

Erstellt ein container-Objekt.

multiset::rbegin (STL/CLR)

Legt den Anfang der umgekehrten kontrollierten Sequenz fest.

multiset::rend (STL/CLR)

Legt das Ende der umgekehrten kontrollierten Sequenz fest.

multiset::size (STL/CLR)

Ermittelt die Anzahl der Elemente.

multiset::swap (STL/CLR)

Vertauscht den Inhalt von zwei Containern.

multiset::to_array (STL/CLR)

Kopiert die gesteuerte Sequenz zu einem neuen Array.

multiset::upper_bound (STL/CLR)

Suchenende des Bereichs, der einen angegebenen Schlüssel entspricht.

multiset::value_comp (STL/CLR)

Kopiert den Reihenfolgendelegaten für zwei Elementwerte.

Operator

Beschreibung

multiset::operator= (STL/CLR)

Ersetzt die gesteuerte Sequenz.

operator!= (multiset) (STL/CLR)

Bestimmt, ob ein multiset-Objekt nicht gleich ein anderes multiset-Objekt ist.

operator< (multiset) (STL/CLR)

Bestimmt, ob ein multiset-Objekt kleiner als ein anderes multiset-Objekt ist.

operator<= (multiset) (STL/CLR)

Bestimmt, ob ein multiset-Objekt maximal ein anderes multiset-Objekt ist.

operator== (multiset) (STL/CLR)

Bestimmt, ob ein multiset-Objekt ein anderes Objekt gleich multiset ist.

operator> (multiset) (STL/CLR)

Bestimmt, ob ein multiset-Objekt größer als ein anderes multiset-Objekt ist.

operator>= (multiset) (STL/CLR)

Bestimmt, ob ein multiset-Objekt größer oder gleich einem anderen multiset-Objekt ist.

Schnittstellen

Schnittstelle

Beschreibung

ICloneable

Ein Objekt duplizieren.

IEnumerable

Sequenz durch Elemente.

ICollection

Unbegrenztes Beibehalten Elementgruppe bei.

IEnumerable

Sequenz von typisierten Elemente.

ICollection

Unbegrenztes Beibehalten Gruppe typisierten Elemente bei.

ITreeKey <, Value>

Warten Sie generischen Container.

Hinweise

Das Objekt belegt und gibt die Sequenz für Speicher frei, die er als einzelne Knoten steuert. Es werden Elemente in ein (fast) ausglich Struktur, Relevanz die es enthält, indem die Links zwischen Knoten ändert, nie ein, indem der Inhalt von einem Knoten zum anderen kopiert. Das bedeutet, dass Sie Elemente beunruhigende ohne verbleibende Elemente frei einfügen und löschen können.

Das Objekt ordnet die Sequenz, die steuert, indem ein gespeichertes Delegatobjekt des Typs multiset::key_compare (STL/CLR). Sie können dem gespeicherten Delegatobjekt angeben, wenn Sie das Multiset erstellen; Wenn Sie kein Delegatobjekt angeben, gilt standardmäßig der Vergleich operator<(key_type, key_type). Sie greifen auf das gespeicherte Objekt zu, indem Sie die Memberfunktion multiset::key_comp (STL/CLR)() aufrufen.

Ein solches Delegatobjekt muss eine genaue schwache Sortierung Schlüsseln des Typs multiset::key_type (STL/CLR) festlegen. Das heißt, für alle zwei Schlüssel X und Y:

key_comp()(X, Y) gibt die gleichen Auswirkungen auf booleschen jeden Aufruf zurück.

Wenn key_comp()(X, Y) true ist, muss key_comp()(Y, X) falsch sein.

Wenn key_comp()(X, Y) true ist, dann wird X vor Y nach.

Wenn !key_comp()(X, Y) && !key_comp()(Y, X) true ist, werden X und Y gibt an, um übereinstimmende Reihenfolge zu haben.

Für jedes Element X, das Y in der Sequenz gesteuerten vorangeht, ist key_comp()(Y, X) falsch. (Für das Standarddelegatobjekt, verringert wird Schlüssel nie.) Im Gegensatz Vorlagenklasse set (STL/CLR), benötigt ein Objekt der Vorlagenklasse multiset nicht, dass Tasten für alle Elemente eindeutig sind. (zwei oder mehrere Tasten können entsprechende Reihenfolge haben.)

Jedes Element dient als ey und Wert. Die Sequenz wird so dargestellt, die Ermittlung, Einfügen und Entfernen eines beliebigen Elements mit Operationen zulässt, die z Logarithmus der Anzahl der Elemente in der Sequenz proportional sind (logarithmische Zeit). Außerdem ein Element Einfügen macht keine Iteratoren ungültig, und ein Element entfernen, Iteratoren ungültig macht nur die am entfernten Element zeigen.

Ein Multiset unterstützt bidirektionale Iteratoren, dass Sie zu benachbarten Elementen werden kann, dass ein Iterator angegeben werden, der ein Element in der Sequenz gesteuerten festlegt. Ein spezieller Hauptknoten entspricht dem Iterator, der durch multiset::end (STL/CLR)() zurückgegeben wird. Sie können diesen Iterator Dekrementieren, um das letzte Element der gesteuerten Sequenz erreicht, wenn vorhanden. Sie können einen Multisetiterator erhöhen, um den Hauptknoten erreicht, und vergleicht er dann gleich end(). Sie können jedoch den Iterator nicht möglich, der von end() zurückgegeben wird.

Beachten Sie, dass Sie ein Multisetelement nicht zugreifen können, das direkt die numerische Position angegeben wird - das erfordert einen Iterator mit wahlfreier Zugriff.

Ein Multisetiterator speichert ein Handle auf dem zugeordneten Multisetknoten, der wiederum ein Handle auf dem zugeordneten Container speichert. Sie können Iteratoren nur mit ihren zugeordneten Containerobjekten verwenden. Ein Multisetiterator bleibt gültig, solange der zugehörige Multisetknoten mit einem Multiset zugeordnet ist. Darüber hinaus ist ein gültiger dereferencable Iterator - Sie können ihn verwenden, um auf den Elementwert zuzugreifen oder zu ändern, der festlegt wird - solange er nicht gleich end() ist.

Ein Element Löschen oder entfernen, wird der Destruktor für den gespeicherten Wert auf. Die Container Löschen eines Auflistungsobjekts, löscht alle Elemente. Somit wird sichergestellt ein Container, dessen Elementtyp eine Verweisklasse, ist, dass keine Elemente den Container Beibehaltene Objekte. Beachten Sie jedoch dem Container Handles not bewirkt, zerstören seine Elemente.

Anforderungen

Header: <cliext/Satz>

Namespace: cliext

Siehe auch

Referenz

hash_map (STL/CLR)

hash_multiset (STL/CLR)

hash_multiset (STL/CLR)

hash_set (STL/CLR)

map (STL/CLR)

multiset (STL/CLR)

set (STL/CLR)

Weitere Ressourcen

Referenz zur STL/CLR-Bibliothek