map Class
Wird zum Speichern und Abrufen von Daten aus einer Auflistung, in der jedes Element ein Paar ist, das einen Datenwert und einen Sortierschlüssel verfügt.Der Wert der Schlüssel ist eindeutig und wird verwendet, um automatisch die Daten zu sortieren.
Der Wert eines Elements in einer Zuordnung kann direkt geändert werden.Der Schlüsselwert ist eine Konstante und kann nicht geändert werden.Stattdessen müssen die Schlüsselwerte, die mit alten Elementen zugeordnet sind, gelöscht werden, und neue Schlüsselwerte müssen für neue Elemente eingefügt werden.
template <
class Key,
class Type,
class Traits = less<Key>,
class Allocator=allocator<pair <const Key, Type> >
>
class map
Parameter
Key
Der in der Zuordnung gespeichert werden, Schlüsseldatentyp.Type
Der in der Zuordnung gespeichert werden, Elementdatentyp.Traits
Der Typ, der ein Funktionsobjekt bereitstellt, das zwei Elementwerte als Sortierschlüssel vergleichen kann, um deren relative Position in der Zuordnung zu bestimmen.Dieses Argument ist optional und das binäre Prädikat less<Key> ist der Standardwert.Allocator
Der Typ, der die gespeicherte allocator-Objekt darstellt, die Details über die Belegung und Freigabe Speicherplatzbelegung kapselt.Dieses Argument ist optional und der Standardwert ist allocator<pair<constKey*,* Type> >.
Hinweise
Die Assoziationsklasse der Standardvorlagenbibliothek (STL) ist:
Ein Container variable Größe, effizient Elementwerte auf Grundlage zugeordnete Schlüsselwerte abruft.
Umkehrbar, da sie bidirektionale Iteratoren bereitstellt, um auf die Elemente zuzugreifen.
Sortiert, da ihre Elemente anhand Schlüsselwerte entsprechend einer angegebenen Vergleichsfunktion sortiert werden.
Eindeutig.da jedes seiner Elemente einen eindeutigen Schlüssel verfügen muss.
Ein Paar-vereinigender Container, da die - Elementdatenwerte von ihren Schlüsselwerten unterschiedlich sind.
Eine Vorlagenklasse, da die Funktionen, die bereitstellt, ist generisch und unabhängig vom - Elements oder des Schlüsseltyps.Die Datentypen, die für Elemente und Schlüssel verwendet werden, werden als Parameter in der Klassenvorlage zusammen mit der Vergleichsfunktion und der Belegungsfunktion angegeben.
Der Iterator, der von der Assoziationsklasse bereitgestellt wird, ist ein bidirektionaler Iterator, aber die insert und map-Klassenmemberfunktionen haben Versionen, die als Vorlagenparameter einen abgeschwächten Eingabeiterator erhalten, dessen Funktionalitätsanforderungen weniger sind als die, die durch die - Klasse von bidirektionalen Iteratoren gewährleistet werden.Die verschiedenen Iteratorkonzepte werden durch Verfeinerungen in ihre Funktionalität verknüpft.Jedes Iteratorkonzept verfügt über einen eigenen Satz von Anforderungen, und die Algorithmen, die darin arbeiten, müssen durch diese Anforderungen eingeschränkt werden.Ein Eingabeiterator wird dereferenziert werden, um einige Objekt zuzugreifen und wird mit dem folgenden Iterator in der Sequenz erhöht werden.
Es wird empfohlen, die Auswahl des Containertyps auf der Art des mehr basieren und Einfügen das von der Anwendung benötigt wird.Vereinigende Container werden für die Vorgänge der Suche, Einfüge- und des Entfernens optimiert.Die Memberfunktionen, die explizit diese Vorgänge unterstützen, werden sie in einer Zeit aus, die im Durchschnitt dem Logarithmus der Anzahl der Elemente im Container proportional ist.Elemente Einfügen, macht keine Iteratoren ungültig, und Elemente entfernen, macht nur die Iteratoren ungültig die sich speziell auf den entfernten Elemente haben.
Es wird empfohlen, die Zuordnung den assoziative Container der Auswahl erstellen, wenn Bedingungen, die Werte mit Schlüsseln zuordnen, durch die Anwendung erfüllt werden.Ein Modell für diese Art der Struktur ist eine sortierte Liste von eindeutig auftretenden Schlüsselwörtern, die Zeichenfolgenwerte zugeordnet haben, die Definitionen bereitstellen.Wenn ein Wort mehr als eine genaue Definition verfügt, sodass Schlüssel nicht eindeutig ist, wird eine Multimap der Container der Auswahl sein.Wenn nur die Liste von Wörtern gespeichert wird, wird ein Satz der entsprechende Container handeln.Wenn mehrere Vorkommen der Wörter zulässig sind, wird ein Multiset geeignet sein.
Die Zuordnung sortiert die Elemente, die sie steuert, indem sie ein gespeichertes Funktionsobjekt des Typs key_compare aufrufen.In gespeicherte Objekt ist eine Vergleichsfunktion, auf die zugegriffen wird, indem die key_comp-Methode aufruft.Im Allgemeinen alle zwei angegebenen Elemente werden verglichen, um, ob kleiner als das andere ist oder zu bestimmen, ob sie äquivalent sind.Obwohl alle Elemente verglichen werden, wird eine geordnete Sequenz von Elementen antivalenten erstellt.
Hinweis |
---|
Die Vergleichsfunktion ist ein binäres Prädikat, das eine strenge schwache Sortierung im mathematischen StandardSinn verursacht.Ein binäres Prädikat f(x,y) ist ein Funktionsobjekt, das zwei Argumentobjekte x und y verfügt, und ein Rückgabewert von true oder von false.Eine Reihenfolge, die zu einem Satz angewendet wird, ist eine strikte schwache binäre Sortierung, wenn das Prädikat irreflexiv transitiv ist, antisymmetrisch, und und wenn Äquivalenz transitiv ist, wobei zwei Objekte x und y definiert werden, um zu entsprechen, wenn f(x,y) und f(y,x)false sind.Wenn die dickere Zustand der Gleichheit zwischen die Schlüssel der Äquivalenz ersetzt, wird die Reihenfolge gesamt (insofern, dass alle Elemente hinsichtlich eines anderen geordnet werden), und die Schlüssel, die verglichen werden, können von einem anderen nicht wahrnehmbar. |
Mitglieder
Konstruktoren
Erstellt eine Liste einer bestimmten Größe oder mit Elementen eines bestimmten Werts oder mit bestimmten allocator oder als Kopie einer anderen Zuordnung. |
Typedefs
Typedef für die allocator-Klasse für das Zuordnungsobjekt. |
|
Typedef für einen bidirektionalen Iterator, der ein const-Element in der Zuordnung lesen kann. |
|
Typedef für einen Zeiger auf einen const-Element in einer Zuordnung. |
|
Typedef als Referenz zu einem Element gespeichert const in einer Zuordnung zum Lesen und Ausführen von const Vorgänge. |
|
Ein Typ, der einen bidirektionalen Iterator stellt, der beliebige const-Element in der Zuordnung lesen kann. |
|
Ganzzahliges Typedef mit Vorzeichen für die Anzahl der Elemente einer Zuordnung in einem Bereich zwischen Elementen wurde durch zu den Iteratoren. |
|
Typedef für einen bidirektionalen Iterator, der lesen kann oder jedes Element in einer Zuordnung ändert. |
|
Typedef für ein Funktionsobjekt, das zwei Sortierschlüssel vergleichen kann, um die relative Reihenfolge von zwei Elementen in der Zuordnung zu bestimmen. |
|
Typedef für den Sortierschlüssel gespeichert in jedem Element der Zuordnung. |
|
Typedef für die Daten in jedem Element einer Zuordnung. |
|
Typedef für einen Zeiger auf einen const-Element in einer Zuordnung. |
|
Typedef als Verweis auf ein Element in einer Zuordnung. |
|
Typedef für einen bidirektionalen Iterator, der lesen kann oder ein Element in umgekehrter Zuordnung ändert. |
|
Eine ganze Zahl ohne Vorzeichen Typedef für die Anzahl der Elemente in einer Zuordnung |
|
Typedef für den Typ des Objekts gespeichert als Element in einer Zuordnung. |
Methoden
Sucht ein Element mit einem angegebenen Schlüsselwert. |
|
Gibt einen Iterator zurück, der dem ersten Element in der Zuordnung zeigt. |
|
Gibt einen konstanten Iterator zurück, der dem ersten Element in der Zuordnung zeigt. |
|
Gibt einen konstanten Hinter-dEndeiterator zurück. |
|
Löscht alle Elemente einer Zuordnung. |
|
Gibt die Anzahl der Elemente in einer Zuordnung zurück, deren Schlüssel der Schlüssel entspricht, die in einem Parameter angegeben wird. |
|
Gibt einen konstanten Iterator zurück, der dem ersten Element in umgekehrter Zuordnung zeigt. |
|
Gibt einen konstanten Iterator zurück, der dem Speicherort nach dem letzten Element in umgekehrter Zuordnung zeigt. |
|
Fügt ein - Element ein, das an der Stelle der Zuordnung erstellt wird. |
|
Fügt ein - Element ein, das an der Stelle der Zuordnung, mit einem Platzierungs-Hinweis erstellt wird. |
|
Gibt true zurück, wenn eine Zuordnung leer ist. |
|
Gibt den Hinter-dEndeiterator zurück. |
|
Gibt ein Paar Iteratoren zurück.Der erste Iterator paarweise zeigt auf den ersten Element in map mit einem Schlüssel, die größer ist, als ein angegebener Schlüssel.Der zweite Iterator paarweise zeigt auf den ersten Element in map mit einem Schlüssel, die gleich oder größer ist als Schlüssel. |
|
Entfernt ein Element oder einen Bereich von Elementen in einer Zuordnung von den angegebenen Speicherorten. |
|
Gibt einen Iterator zurück, der dem Position eines Elements in einer Zuordnung verweist, die eine Schlüssel gleich einem angegebenen Schlüssel verfügt. |
|
Gibt eine Kopie des allocator-Objekts zurück, das verwendet wird, um die Zuordnung zu erstellen. |
|
Fügt ein Element oder einen Bereich von Elementen in die Zuordnung in einer angegebenen Position ein. |
|
Gibt eine Kopie des Vergleichsobjekts zurück, das verwendet wurde, um Schlüssel in einer Zuordnung zu sortieren. |
|
Gibt einen Iterator auf das erste Element in einer Zuordnung zurück, die einen Schlüsselwert verfügt, den oder entspricht eines angegebenen Schlüssels größer als der. |
|
Gibt die maximale Länge der Zuordnung zurück. |
|
Gibt einen Iterator zurück, der dem ersten Element in umgekehrter Zuordnung zeigt. |
|
Gibt einen Iterator zurück, der dem Speicherort nach dem letzten Element in umgekehrter Zuordnung zeigt. |
|
Gibt die Anzahl der Elemente in der Zuordnung zurück. |
|
Tauscht die Elemente von zwei Zuordnungen aus. |
|
Gibt einen Iterator auf das erste Element in einer Zuordnung zurück, die einen Schlüsselwert verfügt, der größer als der eines angegebenen Schlüssels ist. |
|
Ruft eine Kopie des Vergleichsobjekts ab, das verwendet wird, um Elementwerte in einer Zuordnung zu sortieren. |
Operatoren
Fügt ein Element in eine Zuordnung mit einem angegebenen Schlüsselwert ein. |
|
Ersetzt die Elemente einer Zuordnung durch eine Kopie einer anderen Zuordnung. |
Anforderungen
Header: <map>
Namespace: std
Siehe auch
Referenz
Threadsicherheit in der C++-Standardbibliothek