Zuordnung (STL/CLR)
Die Vorlagenklasse beschreibt ein Objekt, das eine VARYING LENGTH-Folge von Elementen steuert, die bidirektionale Zugriff hat.Sie verwenden den Container map, 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 map
: public
System::ICloneable,
System::Collections::IEnumerable,
System::Collections::ICollection,
System::Collections::Generic::IEnumerable<GValue>,
System::Collections::Generic::ICollection<GValue>,
System::Collections::Generic::IList<GValue>,
System::Collections::Generic::IDictionary<Gkey, GMapped>,
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 |
---|---|
Der Typ eines konstanten Iterators für die gesteuerte Sequenz. |
|
Der Typ eines konstanten Verweis auf ein Element. |
|
Der Typ eines konstanten umgekehrten Iterators für die gesteuerte Sequenz. |
|
Der Typ der Abstand (möglicherweise signiert) zwischen zwei Elementen. |
|
Der Typ der generischen Schnittstelle für den Container. |
|
Der Typ eines Iterators für die generische Schnittstelle für den Container. |
|
Der Typ eines umgekehrten Iterators für die generische Schnittstelle für den Container. |
|
Der Typ eines Elements für die generische Schnittstelle für den Container. |
|
Der Typ eines Iterators für die gesteuerte Sequenz. |
|
Der des Delegaten für Bestellungen für zwei Schlüssel. |
|
Der Typ einer Aufträge. |
|
Der Typ des zugewiesenen Werts jeder Schlüssel zugeordnet ist. |
|
Der Typ eines Verweises auf ein Element. |
|
Der Typ eines umgekehrten Iterators für die gesteuerte Sequenz. |
|
Der Typ (nicht negativ) Lücke A zwischen zwei Elementen. |
|
Der des Delegaten für Bestellungen für zwei Elementwerte. |
|
Der Typ eines Elements. |
Memberfunktion |
Beschreibung |
---|---|
Legt den Anfang der kontrollierten Sequenz fest. |
|
Entfernt alle Elemente. |
|
Zählt die Elemente, die einem angegebenen Schlüssel entsprechen. |
|
Ü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. |
|
Fügt Elemente hinzu. |
|
Kopiert den Aufträgen Delegaten für zwei Schlüssel. |
|
Durchsucht den Anfang des Bereichs, der einem angegebenen Schlüssel entspricht. |
|
Erstellt ein Wertobjekt. |
|
Erstellt ein Containerobjekt. |
|
Legt den Anfang der umgekehrten kontrollierten Sequenz fest. |
|
Legt das Ende der umgekehrten kontrollierten Sequenz fest. |
|
Ermittelt die Anzahl der Elemente. |
|
Vertauscht den Inhalt von zwei Containern. |
|
Kopiert die gesteuerte Sequenz in ein neues Array. |
|
Sucht Ende des Bereichs, der einem angegebenen Schlüssel entspricht. |
|
Kopiert den Aufträgen Delegaten für zwei Elementwerte. |
Operator |
Beschreibung |
---|---|
Ersetzt die gesteuerte Sequenz. |
|
Ordnet eine an den zugeordneten Schlüssel zugeordneten Wert zu. |
|
Bestimmt, ob ein map-Objekt nicht gleich einer anderen map-Objekt ist. |
|
Bestimmt, ob ein Objekt kleiner als ein anderes mapmap-Objekt ist. |
|
Bestimmt, ob ein map-Objekt kleiner oder gleich dem Wert eines anderen map-Objekt ist. |
|
Bestimmt, ob ein map-Objekt einem anderen Objekt entspricht. map |
|
Bestimmt, ob ein Objekt größer als ein anderes mapmap-Objekt ist. |
|
map Bestimmt, ob ein Objekt größer oder gleich einem anderen map-Objekt ist. |
Schnittstellen
Schnittstelle |
Beschreibung |
---|---|
Duplizieren Sie ein Objekt. |
|
Sequenz von Elementen. |
|
Behalten Sie unter ItemGroup. |
|
Sequenz von typisierten Elemente. |
|
Behalten Sie die Gruppe typisierte Elemente beibehalten. |
|
Behalten Sie die Gruppe {Schlüssel, Wert} - Paar bei. |
|
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 map::key_compare (STL/CLR) aufruft.Sie können das gespeicherte Delegatobjekt angeben, wenn Sie die Zuordnung 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 map::key_comp (STL/CLR)() aufrufen.
Solch ein Delegatobjekt muss eine strikte schwache Sortierung Schlüssel vom Typ map::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 map 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 Zuordnung 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 map::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 iterator Zuordnungen 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 bestimmtes Kartenelement nicht direkt zugreifen können die numerische Position -- Das erfordert einen Iterator mit wahlfreier Zugriff.
Ein iterator Zuordnungen speichert ein Handle auf den Knoten zugeordnet, der wiederum ein Handle für den zugeordneten Container speichert.Sie können Iteratoren nur mit den zugeordneten Containerobjekten verwenden.Ein iterator Zuordnungen bleibt gültig, bis Knoten mit einer Zuordnung der Karte 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