Freigeben über


Multimap (STL/CLR)

Die Vorlagenklasse beschreibt ein Objekt, das eine VARYING LENGTH-Folge von Elementen steuert, die bidirektionale Zugriff hat.Sie verwenden den Container multimap, um eine Sequenz von Elementen als A verwalten (fast) ausglichen geordneten Struktur von Knoten jedes speichernde ein Element.Ein Element besteht aus einer Schlüssel für die Einrichtung der Sequenz und einem zugehörigen Wert, der für die Fahrt anstrebt.

In der unten GValue interaktiven Beschreibung, ist dasselbe wie vor:

Microsoft::VisualC::StlClr::GenericPair<GKey, GMapped>

Dabei gilt:

GKey entspricht Key, es sei denn, das zweite ein ref-Typ ist. In diesem Fall handelt es Key^

GMapped entspricht Mapped, es sei denn, das zweite ein ref-Typ ist. In diesem Fall handelt es Mapped^

template<typename Key,
    typename Mapped>
    ref class multimap
        :   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

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

  • Zugeordnet
    Der Typ der zusätzlichen Komponente eines Elements in der kontrollierten Sequenz.

Mitglieder

Typdefinition

Beschreibung

multimap::const_iterator (STL/CLR)

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

multimap::const_reference (STL/CLR)

Der Typ eines konstanten Verweis auf ein Element.

multimap::const_reverse_iterator (STL/CLR)

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

multimap::difference_type (STL/CLR)

Der Typ der Abstand (möglicherweise signiert) zwischen zwei Elementen.

multimap::generic_container (STL/CLR)

Der Typ der generischen Schnittstelle für den Container.

multimap::generic_iterator (STL/CLR)

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

multimap::generic_reverse_iterator (STL/CLR)

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

multimap::generic_value (STL/CLR)

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

multimap::iterator (STL/CLR)

Der Typ eines Iterators für die gesteuerte Sequenz.

multimap::key_compare (STL/CLR)

Der des Delegaten für Bestellungen für zwei Schlüssel.

multimap::key_type (STL/CLR)

Der Typ einer Aufträge.

multimap::mapped_type (STL/CLR)

Der Typ des zugewiesenen Werts jeder Schlüssel zugeordnet ist.

multimap::reference (STL/CLR)

Der Typ eines Verweises auf ein Element.

multimap::reverse_iterator (STL/CLR)

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

multimap::size_type (STL/CLR)

Der Typ (nicht negativ) Lücke A zwischen zwei Elementen.

multimap::value_compare (STL/CLR)

Der des Delegaten für Bestellungen für zwei Elementwerte.

multimap::value_type (STL/CLR)

Der Typ eines Elements.

Memberfunktion

Beschreibung

multimap::begin (STL/CLR)

Legt den Anfang der kontrollierten Sequenz fest.

multimap::clear (STL/CLR)

Entfernt alle Elemente.

multimap::count (STL/CLR)

Zählt die Elemente, die einem angegebenen Schlüssel entsprechen.

multimap::empty (STL/CLR)

Überprüft, ob keine Elemente vorhanden sind.

multimap::end (STL/CLR)

Legt das Ende der kontrollierten Sequenz fest.

multimap::equal_range (STL/CLR)

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

multimap::erase (STL/CLR)

Entfernt Elemente an den angegebenen Positionen.

multimap::find (STL/CLR)

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

multimap::insert (STL/CLR)

Fügt Elemente hinzu.

multimap::key_comp (STL/CLR)

Kopiert den Aufträgen Delegaten für zwei Schlüssel.

multimap::lower_bound (STL/CLR)

Durchsucht den Anfang des Bereichs, der einem angegebenen Schlüssel entspricht.

multimap::make_value (STL/CLR)

Erstellt ein Wertobjekt.

multimap::multimap (STL/CLR)

Erstellt ein Containerobjekt.

multimap::rbegin (STL/CLR)

Legt den Anfang der umgekehrten kontrollierten Sequenz fest.

multimap::rend (STL/CLR)

Legt das Ende der umgekehrten kontrollierten Sequenz fest.

multimap::size (STL/CLR)

Ermittelt die Anzahl der Elemente.

multimap::swap (STL/CLR)

Vertauscht den Inhalt von zwei Containern.

multimap::to_array (STL/CLR)

Kopiert die gesteuerte Sequenz in ein neues Array.

multimap::upper_bound (STL/CLR)

Sucht Ende des Bereichs, der einem angegebenen Schlüssel entspricht.

multimap::value_comp (STL/CLR)

Kopiert den Aufträgen Delegaten für zwei Elementwerte.

Operator

Beschreibung

multimap::operator= (STL/CLR)

Ersetzt die gesteuerte Sequenz.

Operator! = (Multimap) (STL/CLR)

Bestimmt, ob ein multimap-Objekt nicht gleich einer anderen multimap-Objekt ist.

operator< (Multimap) (STL/CLR)

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

operator<= (Multimap) (STL/CLR)

Bestimmt, ob ein multimap-Objekt kleiner oder gleich dem Wert eines anderen multimap-Objekt ist.

operator== (Multimap) (STL/CLR)

Bestimmt, ob ein multimap-Objekt einem anderen Objekt entspricht. multimap

operator> (Multimap) (STL/CLR)

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

operator>= (Multimap) (STL/CLR)

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

Schnittstellen

Schnittstelle

Beschreibung

ICloneable

Duplizieren Sie ein Objekt.

IEnumerable

Sequenz von Elementen.

ICollection

Behalten Sie unter ItemGroup.

IEnumerable<T>

Sequenz von typisierten Elemente.

ICollection<T>

Behalten Sie die Gruppe typisierte Elemente beibehalten.

ITree<Schlüssel, Wert>

Warten Sie generischen Container.

Hinweise

Das Objekt wird auf und gibt Speicherplatz für die Sequenz frei, die er als einzelner Knoten steuert.Es fügt Elemente in ein (fast) ausglich Struktur angeordnet, dass sie beibehalten werden kann, indem die Links zwischen Knoten nie ändert, indem der Inhalt von einem Knoten auf einen anderen kopiert.Das bedeutet, dass Sie Elemente frei einfügen und löschen können, ohne übrigen Elemente zu beeinträchtigen.

Das Objekt sortiert die Sequenz, die er steuern, indem Sie ein gespeichertes Delegatobjekt des Typs multimap::key_compare (STL/CLR) aufruft.Sie können das gespeicherte Delegatobjekt angeben, wenn Sie die Multimap erstellen. Wenn Sie kein Delegatobjekt angeben, wird standardmäßig der Vergleich operator<(key_type, key_type).Sie greifen auf das gespeicherte Objekt, indem Sie die Memberfunktion multimap::key_comp (STL/CLR)() aufrufen.

Solch ein Delegatobjekt muss eine strikte schwache Sortierung Schlüssel vom Typ multimap::key_type (STL/CLR) auferlegen.Das bedeutet, dass für alle zwei Schlüssel X und Y:

key_comp()(X, Y) gibt die gleiche boolesche Ergebnis auf jeden Aufruf zurück.

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

Wenn key_comp()(X, Y) auf true festgelegt ist, muss X vor Y geordnet.

Wenn !key_comp()(X, Y) && !key_comp()(Y, X) true ist, werden X und Y gesagt, um entsprechende Reihenfolge aufweisen.

Für jedes Element X, das Y in der kontrollierten Sequenz key_comp()(Y, X) vorangeht, ist falsch.(Für das standardmäßige Delegatobjekt, Wertminderung Schlüssel nie ab.) Im Gegensatz zu einer Vorlagenklasse Zuordnung (STL/CLR), erfordert ein Objekt multimap der Vorlagenklasse nicht, dass der Schlüssel für alle Elemente eindeutig sind.(Zwei oder mehr Schlüssel können geeignete Reihenfolge aufweisen.)

Jedes Element enthält eine separate Schlüssel und einen zugeordneten Wert.Die Sequenz wird so dargestellt, die Suche, Einfügen und Löschen eines beliebigen Elements mit Operationen zulässt, die an den Logarithmus der Anzahl der Elemente in der Sequenz sind proportional (logarithmische 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.

Eine Multimap unterstützt bidirektionale Iteratoren, die besagt, dass Sie den benachbarten angegebenen Elemente treten können ein Iterator, der eines Elements in der kontrollierten Sequenz.Ein spezieller Hauptknoten entspricht dem Iterator, der von multimap::end (STL/CLR)() zurückgegeben wurde.Sie können diesen Iterator verringern, um das letzte Element in der kontrollierten Sequenz erreicht hat, falls vorhanden.Sie können einen Multimap iterator erhöhen, um den Hauptknoten zu erreichen, und vergleicht dann gleich end().Aber Sie können den Iterator, der von end() keine Dereferenzierung zurückgegeben wird.

Beachten Sie, dass Sie ein angegebenes Element Multimap nicht direkt zugreifen können die numerische Position -- Das erfordert einen Iterator mit wahlfreier Zugriff.

Ein Multimap iterator speichert ein Handle für den zugeordneten Knoten Multimap, der wiederum ein Handle für den zugeordneten Container speichert.Sie können Iteratoren nur mit den zugeordneten Containerobjekten verwenden.Ein Multimap iterator bleibt gültig, bis Multimap der zugehörige Knoten mit einer beliebigen Multimap zugeordnet ist.Darüber hinaus ist ein gültiger Iterator dereferencable -- Sie können ihn verwenden, um den Elementwert zuzugreifen oder zu ändern, den er festgelegt wird -- solange er nicht gleich end() ist.

Entfernen oder Löschen eines Elements wird der Destruktor für den gespeicherten Wert an.Der Container zerstörend, löscht alle Elemente.Dies garantiert ein Container, dessen Elementtyp eine Verweisklasse wird, dass keine Elemente Überleben Container.Beachten Sie jedoch, dem ein Container, not Handle zerstört seine Elemente.

Anforderungen

Header: <cliext/Zuordnung>

Namespace: cliext

Siehe auch

Referenz

hash_map (STL/CLR)

hash_multimap (STL/CLR)

hash_multiset (STL/CLR)

hash_set (STL/CLR)

Zuordnung (STL/CLR)

Multiset (STL/CLR)

Satz (STL/CLR)

Weitere Ressourcen

STL/CLR-Bibliotheksreferenz