map-Klasse
Wird zum Speichern und Abrufen von Daten aus einer Auflistung verwendet, in der jedes Element ein Paar ist, das einen Datenwert und einen Sortierschlüssel aufweist. Der Wert des Schlüssels ist eindeutig und wird verwendet, zum automatischen Sortieren der Daten verwendet.
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 alten Elementen zugeordnet sind, gelöscht und neue Schlüsselwerte 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 zu speichernde Schlüsseldatentyp.Type
Der in der Zuordnung zu speichernde Elementdatentyp.Traits
Der Typ, der ein Funktionsobjekt bereitstellt, das zwei Elementwerte als Sortierschlüssel vergleichen kann, um deren relative Reihenfolge in der Zuordnung zu bestimmen. Dieses Argument ist optional, und das binäre Prädikat less<Key> ist der Standardwert.Allocator
Der Typ, der das gespeicherte Zuordnungsobjekt darstellt, das Details zum Belegen und Freigeben des Arbeitsspeichers der Zuordnung kapselt. Dieses Argument ist optional, und der Standardwert ist allocator<pair <constKey*,* Type> >.
Hinweise
Die Zuordnungsklasse der Standardvorlagenbibliothek (STK) ist:
Ein Container variabler Größe, der Elementwerte effizient auf Grundlage zugeordneter Schlüsselwerte abruft.
Umkehrbar, da bidirektionale Iteratoren für den Zugriff auf die Elemente bereitgestellt werden.
Sortiert, da die Elemente entsprechend einer angegebenen Vergleichsfunktion nach Schlüsselwerten sortiert werden.
Eindeutig, da jedes der Elemente einen eindeutigen Schlüssel aufweisen muss.
Ein Paar-assoziativer Container, da sich die Elementdatenwerte von den Schlüsselwerten unterscheiden.
Eine Vorlagenklasse, da die bereitgestellten Funktionen generisch und vom Element- oder Schlüsseltyp unabhängig sind. Die für Elemente und Schlüssel verwendeten Datentypen werden in der Klassenvorlage zusammen mit der Vergleichsfunktion und der Zuweisung als Parameter angegeben.
Der der von einer Zuordnungsklasse bereitgestellte Iterator ist ein bidirektionaler Iterator. Die Klassenmemberfunktionen insert und map weisen allerdings Versionen auf, einen abgeschwächten Eingabeiterator als einen Vorlagenparameter akzeptieren, dessen Funktionalitätsanforderungen weniger umfangreich sind, als die von der Klasse bidirektionaler Iteratoren garantierten. Die verschiedenen Iteratorkonzepte sind durch Verfeinerungen in ihrer Funktionen verknüpft. Jedes Iteratorkonzept weist einen eigenen Satz von Anforderungen auf, und damit einhergehenden Algorithmen müssen durch diese Anforderungen beschränkt werden. Ein Eingabeiterator kann dereferenziert werden, um auf ein Objekt zu verweisen und wird zum folgenden Iterator in der Sequenz erhöht.
Es wird empfohlen, dass Sie die Auswahl des Containertyps auf Grundlage der für die Anwendung erforderlichen Such- und Einfügeweise treffen. Assoziative Container sind auf Such-, Einfüge- und Entfernvorgänge optimiert. Die Memberfunktionen, die diese Vorgänge explizit unterstützen, führen sie in einer Zeit für den schlimmsten Fall aus, die zum Logarithmus der Elementanzahl im Container proportional ist. Das Einfügen von Elementen führt nicht dazu, dass Iteratoren ungültig werden, und durch das Entfernen von Elementen werden nur solche Iteratoren ungültig, die speziell auf die entfernten Elemente gezeigt haben.
Es wird empfohlen, die Zuordnung der ausgewählten assoziativen Container zu erstellen, wenn die Bedingungen zur Zuordnung der Werte mit Schlüssel von der Anwendung erfüllt werden. Ein Modell dieser Art von Struktur ist eine geordnete Liste eindeutig auftretender Schlüsselwörter, die Zeichenfolgewerte zugeordnet aufweisen, die Definitionen bereitstellen. Wenn ein Wort über mehrere genaue Definition verfügt, sodass der Schlüssel nicht eindeutig ist, ist eine Mehrfachzuordnung der ausgewählte Container. Wenn nur die Wortliste gespeichert wird, ist ein Satz der geeignete Container. Wenn mehrfaches Vorkommen der Wörter zulässig ist, ist eine Multimenge geeignet.
Die Zuordnung sortiert die von ihr gesteuerten Elemente, indem ein gespeichertes Funktionsobjekt vom Typ key_compare aufgerufen wird. Bei diesem gespeicherten Objekt handelt es sich um eine Vergleichsfunktion, auf die zugegriffen wird, indem die key_comp-Methode aufgerufen wird. Im Allgemeinen werden beliebige zwei angegebene Elemente verglichen, um zu bestimmen, ob eins kleiner als das andere ist, oder ob sie sich entsprechen. Obwohl alle Elemente verglichen werden, wird eine sortierte Sequenz antivalenter Elementen erstellt.
Hinweis
Die Vergleichsfunktion ist ein binäres Prädikat, das eine strenge schwache Sortierung im üblichen mathematischen Sinn erzeugt.Bei einem binären f(x,y)-Prädikat handelt es sich um ein Funktionsobjekt, das zwei x und y-Argumentobjekte aufweist sowie einen Rückgabewert von true oder false.Eine Sortierung, die bei einem Satz erzeugt wird, ist eine strenge schwache Sortierung, wenn das binäre Prädikat irreflexiv, antisymmetrisch und transitiv ist, und wenn die Äquivalenz transitiv ist; wobei zwei Objekte x und y so definiert werden, dass sie äquivalent sind, wenn sowohl f(x,y) als auch f(y,x) false sind.Wenn der stärkere Gleichheitszustand zwischen Schlüsseln die Äquivalenz ersetzt, erfolgt die Sortierung total (d. h., alle Elemente werden zueinander sortiert), und die verglichenen Schlüssel sind von den einander nicht mehr zu unterscheiden.
Member
Konstruktoren
Erstellt eine Liste einer bestimmten Größe bzw. mit Elementen eines bestimmten Werts oder mit einem bestimmten allocator-Element oder als vollständige bzw. teilweise Kopie einer anderen Zuordnung. |
Typedefs
Eine Typdefinition für die allocator-Klasse für das Zuordnungsobjekt. |
|
Eine Typdefinition für einen bidirektionalen Iterator, der ein const-Element in der Zuordnung lesen kann. |
|
Eine Typdefinition für einen Zeiger auf ein const-Element in einer Zuordnung. |
|
Eine Typedef für einen Verweis auf ein const-Element bereitstellt, das in einer Zuordnung zum Lesen und Ausführen von const-Vorgängen gespeichert ist. |
|
Ein Typ, der einen bidirektionalen Iterator mit zufälligem Zugriff bereitstellt, mit dem jedes const-Element in der Zuordnung gelesen werden kann. |
|
Ein Ganzzahltyp mit Vorzeichen für die Anzahl von Elementen einer Zuordnung in einem Bereich zwischen Elementen, auf die von Iteratoren gezeigt wird. |
|
Eine Typedef für einen bidirektionalen Iterator, der ein beliebiges Element in einer Zuordnung lesen oder ändern kann. |
|
Eine Typedef für ein Funktionsobjekt, das zwei Sortierschlüssel vergleichen kann, um die relative Position von zwei Elementen in der Zuordnung zu bestimmen. |
|
Eine Typedef für den in jedem Element der Zuordnung gespeicherten Sortierschlüssel. |
|
Eine Typedef für die in jedem Element einer Zuordnung gespeicherten Daten. |
|
Eine Typdefinition für einen Zeiger auf ein const-Element in einer Zuordnung. |
|
Eine Typedef für einen Verweis auf ein in einer Zuordnung gespeichertes Element. |
|
Eine Typdefinition für einen bidirektionalen Iterator, der ein beliebiges Element in einer reservierten Zuordnung lesen oder ändern kann. |
|
Eine Ganzzahltypedef ohne Vorzeichen für die Anzahl von Elementen in einer Zuordnung. |
|
Eine Typedef für den Typ des Objekts, der als Element in einer Zuordnung gespeichert wird. |
Memberfunktionen
Sucht ein Element mit einem angegebenen Schlüsselwert. |
|
Gibt einen Iterator zurück, der auf das erste Element in der Zuordnung zeigt. |
|
Gibt einen konstanten Iterator zurück, der auf das erste Element in der Zuordnung zeigt. |
|
Gibt einen konstanten "past-the-end"-Iterator zurück. |
|
Löscht alle Elemente einer Zuordnung auf. |
|
Gibt die Anzahl von Elementen in einer Zuordnung zurück, deren Schlüssel dem in einem Parameter angegebenen Schlüssel entspricht. |
|
Gibt einen konstanten Iterator zurück, der auf das erste Element in einer umgekehrten Zuordnung zeigt. |
|
Gibt einen konstanten Iterator zurück, der auf den Speicherort zeigt, der hinter dem letzten Element einer umgekehrten Zuordnung liegt. |
|
Fügt ein Element ein, das vor Ort in die Zuordnung erstellt wird. |
|
Fügt ein Element ein, das vor Ort mit einem Platzierungshinweis in die Zuordnung erstellt wird. |
|
Gibt true zurück, wenn eine Zuordnung leer ist. |
|
Gibt den "past-the-end"-Iterator zurück. |
|
Gibt ein Paar von Iteratoren zurück. Der erste Iterator im Paar zeigt auf das erste Element in map mit einem Schlüssel, der größer ist, als ein bestimmter Schlüssel. Der zweite Iterator im Paar zeigt auf das erste Element in map mit einem Schlüssel, die größer oder gleich dem Schlüssel ist. |
|
Entfernt ein Element oder eine Reihe von Elementen in einer Zuordnung aus den angegebenen Positionen. |
|
Gibt einen Iterator zurück, der auf den Speicherort eines Elements in einer Zuordnung zeigt, der einen Schlüssel gleich einem angegebenen Schlüssel aufweist. |
|
Gibt eine Kopie des zum Erstellen der Zuordnung verwendeten allocator-Objekts zurück. |
|
Fügt ein Element oder einen Reihe von Elementen an einer angegebenen Position in die Zuordnung ein. |
|
Gibt eine Kopie des Vergleichsobjekts zurück, das verwendet wird, um die Schlüssel in einer Zuordnung zu sortieren. |
|
Gibt einen Iterator zum ersten Element in einer Zuordnung zurück, die einen Schlüsselwert aufweist, der gleich oder größer ist als ein angegebener Schlüssel. |
|
Gibt die Maximallänge der Zuordnung zurück. |
|
Gibt einen Iterator zurück, der auf das erste Element in einer umgekehrten Zuordnung zeigt. |
|
Gibt einen Iterator zurück, der auf den Speicherort zeigt, der hinter dem letzten Element einer umgekehrten Zuordnung liegt. |
|
Gibt die Anzahl von Elementen in der Zuordnung zurück. |
|
Tauscht die Elemente zweier Zuordnungen aus. |
|
Gibt einen Iterator zum ersten Element in einer Zuordnung zurück, die einen Schlüsselwert aufweist, der größer ist als ein angegebener Schlüssel. |
|
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 einer Kopie einer anderen Zuordnung. |
Anforderungen
Header: <map>
Namespace: std
Siehe auch
Referenz
Threadsicherheit in der C++-Standardbibliothek