map (STL/CLR)
Die Vorlagenklasse beschreibt ein Objekt, das eine VARYINGLängen-Folge von Elementen steuert, die bidirektionalen Zugriff hat. Mit dem Container map, um eine Sequenz von Elementen als WIQ-Datei zu verwalten (fast) ausglichen geordneter Struktur von Knoten, jedem speichernden Element. Ein Element besteht eine Schlüssel, für Sortierungen der Sequenz und einen zugeordneten Wert, der entlang der Fahrt anstrebt.
In der unten stehenden Beschreibung, ist GValue identisch:
Microsoft::VisualC::StlClr::GenericPair<GKey, GMapped>
Hierbei ist:
GKey entspricht Key, außer, das zweite ein Referenz-Typ ist, in diesem Fall wird Key^ ist
GMapped entspricht Mapped, außer, das zweite ein Referenz-Typ ist, in diesem Fall wird Mapped^ ist
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
Key
Der Typ der Schlüsselkomponente eines Elements in der kontrollierten Sequenz.Zugeordnet
Der Typ der zusätzlichen Komponente eines Elements in der Sequenz. gesteuerten
Member
Typdefinition |
Beschreibung |
---|---|
Der Typ eines konstanten Iterators für die gesteuerte Sequenz. |
|
Der Typ eines konstanten Verweises auf ein Element. |
|
Der Typ eines konstanten umgekehrten Iterators für die gesteuerte Sequenz. |
|
Der Typ der Abstand eine (möglicherweise mit Vorzeichen) 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 des Elements für die generische Schnittstelle für den Container. |
|
Der Typ eines Iterators für die gesteuerte Sequenz. |
|
Der Reihenfolgendelegat für zwei Schlüssel. |
|
Der Typ eines Sortierschlüssels. |
|
Der Typ des zugehörigen Werts jeder zugeordneten Schlüssel zu. |
|
Der Typ eines Verweises auf ein Element. |
|
Der Typ eines umgekehrten Iterators für die gesteuerte Sequenz. |
|
Der Typ (nicht negative a) Abstands zwischen zwei Elementen. |
|
Der Reihenfolgendelegat 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 einen angegebenen Schlüssel übereinstimmen. |
|
Testet, dass keine Elemente vorhanden sind. |
|
Legt das Ende der kontrollierten Sequenz fest. |
|
Suchen reichen die mit einem bestimmten Schlüssel. |
|
Entfernt Elemente an den angegebenen Positionen. |
|
Sucht ein Element, der einem angegebenen Schlüssel entspricht. |
|
Fügt Elemente hinzu. |
|
Kopiert den Reihenfolgendelegaten für zwei Schlüssel. |
|
Sucht Anfang des Bereichs, der einen angegebenen Schlüssel entspricht. |
|
Erstellt ein Wertobjekt. |
|
Erstellt ein container-Objekt. |
|
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 zu einem neuen Array. |
|
Suchenende des Bereichs, der einen angegebenen Schlüssel entspricht. |
|
Kopiert den Reihenfolgendelegaten für zwei Elementwerte. |
Operator |
Beschreibung |
---|---|
Ersetzt die gesteuerte Sequenz. |
|
Ordnet eine Schlüssel mit dem zugeordneten zugeordneten Wert zu. |
|
Bestimmt, ob ein map-Objekt nicht gleich ein anderes map-Objekt ist. |
|
Bestimmt, ob ein map-Objekt kleiner als ein anderes map-Objekt ist. |
|
Bestimmt, ob ein map-Objekt maximal ein anderes map-Objekt ist. |
|
Bestimmt, ob ein map-Objekt ein anderes Objekt gleich map ist. |
|
Bestimmt, ob ein map-Objekt größer als ein anderes map-Objekt ist. |
|
Bestimmt, ob ein map-Objekt größer oder gleich einem anderen map-Objekt ist. |
Schnittstellen
Schnittstelle |
Beschreibung |
---|---|
Ein Objekt duplizieren. |
|
Sequenz durch Elemente. |
|
Unbegrenztes Beibehalten Elementgruppe bei. |
|
Sequenz von typisierten Elemente. |
|
Unbegrenztes Beibehalten Gruppe typisierten Elemente bei. |
|
Unbegrenztes Beibehalten Gruppe {,} Paare Schlüssel Wert 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 map::key_compare (STL/CLR). Sie können dem gespeicherten Delegatobjekt angeben, wenn die Zuordnung 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 map::key_comp (STL/CLR)() aufrufen.
Ein solches Delegatobjekt muss eine genaue schwache Sortierung Schlüsseln des Typs map::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 map (STL/CLR), benötigt ein Objekt der Vorlagenklasse map nicht, dass Tasten für alle Elemente eindeutig sind. (zwei oder mehrere Tasten können entsprechende Reihenfolge haben.)
Jedes Element enthält eine eigene Schlüssel und einen zugeordneten 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.
Eine Zuordnung 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 map::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 Zuordnungsiterator 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 Kartenelement nicht zugreifen können, das direkt die numerische Position angegeben wird - das erfordert einen Iterator mit wahlfreier Zugriff.
Ein Zuordnungsiterator speichert ein Handle zu dem Knoten der verbundenen Zuordnung, der wiederum ein Handle auf dem zugeordneten Container speichert. Sie können Iteratoren nur mit ihren zugeordneten Containerobjekten verwenden. Ein Zuordnungsiterator bleibt gültig, solange sein Knoten der verbundenen Zuordnung mit einer Zuordnung 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/Zuordnung>
Namespace: cliext