multimap Class
Die Standardvorlagenbibliotheksmultimapklasse wird zum Speichern und Abrufen von Daten aus einer Auflistung verwendet, in der das jedes Element ein Paar ist, das einen Datenwert und einen Sortierschlüssel verfügt.Der Wert der Schlüssel muss nicht, um eindeutig sein und wird verwendet, um die Daten automatisch zu sortieren.Der Wert eines Elements in einer Multimap, jedoch nicht der zugehörige Schlüsselwert, werden direkt geändert werden.Stattdessen müssen die Schlüsselwerte, die mit alten Elementen zugeordnet sind, gelöscht und neue Schlüsselwerte mit den neuen Elementen zugeordnet werden eingefügt wurde.
template <
class Key,
class Type,
class Traits=less<Key>,
class Allocator=allocator<pair <const Key, Type> >
>
class multimap
Parameter
Schlüssel
Der in der Multimap gespeichert werden, Schlüsseldatentyp.Typ
Der in der Multimap gespeichert werden, Elementdatentyp.Traits
Der Typ, der ein Funktionsobjekt bereitstellt, das zwei Elementwerte als Sortierschlüssel vergleichen kann, um deren relative Position in der Multimap zu bestimmen.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 *<*const verschlüsseln, Type> >.
Hinweise
Die STL-Multimapklasse ist
Ein vereinigender Container, der ein variabler Größencontainer, der den effizienten Abrufen von Elementwerten auf Grundlage eines zugeordneten Schlüsselwert unterstützt.
Umkehrbar, da sie bidirektionale Iteratoren bereitstellt, um auf die Elemente zuzugreifen.
Sortiert, da ihre Elemente anhand Schlüsselwerte innerhalb des Containers in Übereinstimmung mit der angegebenen Vergleichsfunktion sortiert werden.
mehrere, da die - Elemente nicht erforderlich ist, um eindeutige Schlüssel verfügen, damit ein Schlüsselwert viele Elementdatenwerte verfügen kann, die zugeordnet.
Ein vereinigender Container der Paaren, da seine Elementdatenwerte von ihren Schlüsselwerten unterschiedlich sind.
Eine Vorlagenklasse, da die Funktionen, die bereitstellt, und ist daher unabhängig des jeweiligen Typs der Daten generisch, die als Elemente oder Schlüssel enthalten sind.Die für Elemente und Schlüssel verwendet werden Datentypen, werden stattdessen 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 der Klassenmember funktioniert insert und multimap haben Versionen, die als Vorlagenparameter einen abgeschwächten Eingabeiterator erhalten, dessen Funktionalitätsanforderungen minimaler sind als die, die durch die - Klasse von bidirektionalen Iteratoren gewährleistet werden.Die verschiedenen Iteratorkonzepte bilden eine Gruppe, die von Verfeinerungen in ihre Funktionalität verknüpft ist.Jedes Iteratorkonzept verfügt über einen eigenen Satz von Anforderungen und Algorithmen, die ihnen Muss-Grenze ihre Annahmen zu Anforderungen bearbeiten, dass von diesem Typ des Iterators bereit.Es wird davon ausgegangen werden, dass ein Eingabeiterator möglicherweise wird dereferenziert, um einige - Objekt verwiesen wird, erhöht und dass er möglicherweise auf den folgenden Iterator in der Sequenz.Dies ist ein minimaler Satz von Funktionen, aber es genügt, um in der Lage zu sein, über einen Bereich von Iteratoren [_First, _Last) im Rahmen der Memberfunktionen der Klasse sinnvoll zu verweisen.
Die Auswahl des Containertyps sollte für den Typ zum Suchen und Einfügen im Allgemeinen basieren erfordert mit.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, sind effizient und 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 speziell an den entfernten Elemente gezeigt hätten.
Die Multimap sollte der assoziative Container der Auswahl sein, wenn die Bedingungen, die die Werte mit ihren Schlüssel zuordnen, durch die Anwendung erfüllt werden.Ein Modell für diesen Typ der Struktur ist eine sortierte Liste von Schlüsselwörtern mit den zugeordneten Zeichenfolgenwerten, die sagen wir Definitionen bereitstellen, in denen die Wörter nicht immer eindeutig definiert wurden.Wenn, stattdessen, die Schlüsselwörter eindeutig definiert wurden, um Schlüssel eindeutig sind, wird eine Zuordnung der Container der Auswahl sein.Wenn, dann, nur die Liste von Wörtern gespeichert wird, muss ein Satz der richtige Container handeln.Wenn mehrere Vorkommen der Wörter ermöglicht wird, muss ein Multiset die entsprechende Containerstruktur sein.
Die Multimap sortiert die Sequenz, die sie steuert, indem sie ein gespeichertes Funktionsobjekt des Typs key_compare aufrufen.In gespeicherte Objekt ist eine Vergleichsfunktion auf, die möglicherweise zugegriffen wird, indem Sie die - Memberfunktion key_comp aufruft.Im Allgemeinen müssen die Elemente lediglich weniger als vergleichbar, diese Reihenfolge eingerichtet sein:, damit alle zwei Elemente angegeben, es jedem bestimmt werden kann, dass sie äquivalent sind (insofern, dass kein kleiner ist als die andere ist), oder, dass von kleiner als das andere ist.Dies ergibt eine Reihenfolge zwischen den antivalenten Elementen.Auf einem mehr technischen Hinweis ist die Vergleichsfunktion 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 Argumentobjekt x und y und ein Rückgabewert des true oder false des verfügt.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 Objekt x und y definiert werden, um zu entsprechen wenn sowohl f(x, y) und f(x, y) sind falsch.Wenn die dickere Zustand der Gleichheit zwischen die Schlüssel der Äquivalenz ersetzt, wird die Reihenfolge Summe (insofern, dass alle Elemente zueinander in Beziehung stehen geordnet werden) und die Schlüssel, die verglichen werden, voneinander nicht wahrnehmbar sind.
Mitglieder
Konstruktoren
Erstellt multimap, das leer ist oder, das eine Kopie von vollständig oder teilweise von anderen multimap ist. |
Typedefs
Ein Typ, der die allocator-Klasse für das multimap-Objekt darstellt. |
|
Ein Typ, der einen bidirektionalen Iterator stellt, der ein Element in constmultimap lesen kann. |
|
Ein Typ, der einen Zeiger auf einen const-Element in multimap bereitstellt. |
|
Ein Typ, der einen Verweis auf ein const-Element bereitstellt, gespeicherten in multimap zum Lesen und Ausführen von const Vorgänge. |
|
Ein Typ, der einen bidirektionalen Iterator stellt, der beliebige const-Element in multimap lesen kann. |
|
Ein ganzzahliger Typ mit Vorzeichen, der verwendet werden kann, um die Anzahl von Elementen aus multimap in einem Bereich zwischen Elementen darzustellen, hat sich auf den Iteratoren. |
|
Ein Typ, der den Unterschied zwischen zwei Iteratoren bereitstellt, die Elemente innerhalb derselben multimap verweisen. |
|
Ein Typ, der ein Funktionsobjekt bereitstellt, das zwei Sortierschlüssel vergleichen kann, um die relative Reihenfolge von zwei Elementen in multimap zu bestimmen. |
|
Ein Typ, der das Sortierschlüsselobjekt beschreibt, das jedes Element multimap bildet. |
|
Ein Typ, der den Datentyp darstellt, in multimap gespeichert wurden. |
|
Ein Typ, der einen Zeiger auf einen const-Element in multimap bereitstellt. |
|
Ein Typ, der einen Verweis auf ein Element bereitstellt, gespeicherten in multimap. |
|
Ein Typ, der einen bidirektionalen Iterator stellt, der lesen kann oder ein Element in multimap umgekehrten ändert. |
|
Ein vorzeichenlose Typ ganzen Zahl, der einen Zeiger auf einen const-Element in multimap bereitstellt. |
|
Ein Typ, der ein Funktionsobjekt bereitstellt, das zwei Elemente als Sortierschlüssel vergleichen kann, um deren relative Position in multimap zu bestimmen. |
Memberfunktionen
Gibt einen Iterator zurück, der das erste Element in multimap behandelt. |
|
Gibt einen konstanten Iterator zurück, der das erste Element in multimap behandelt. |
|
Gibt einen konstanten Iterator zurück, der den Speicherort abweicht, der dem letzten Element mit multimap folgt. |
|
Löscht alle Elemente aus multimap. |
|
Gibt die Anzahl der Elemente in multimap zurück, dessen Schlüssel eine Parameter-angegebene Schlüssel entspricht. |
|
Gibt einen konstanten Iterator zurück, der das erste Element in umgekehrten multimap behandelt. |
|
Gibt einen konstanten Iterator zurück, der den Speicherort abweicht, der dem letzten Element mit umgekehrten multimap folgt. |
|
Fügt ein - Element ein, das an der Stelle in multimap erstellt wird. |
|
Fügt ein - Element ein, das an der Stelle in multimap, mit einem Platzierungs-Hinweis erstellt wird |
|
Prüft, ob multimap leer ist. |
|
Gibt einen Iterator zurück, der den Speicherort abweicht, der dem letzten Element mit multimap folgt. |
|
Sucht den Bereich von Elementen, in der der Schlüssel des Elements einen angegebenen Wert entspricht. |
|
Entfernt ein Element oder einen Bereich von Elementen in multimap von den angegebenen Speicherorten oder Elemente entfernt, die einen angegebenen Schlüssel übereinstimmen. |
|
Gibt einen Iterator zurück, der den ersten Position eines Elements in multimap abweicht, das eine Schlüsselentsprechung zu einem angegebenen Schlüssel verfügt. |
|
Gibt eine Kopie des allocator-Objekts zurück, das verwendet wird, um multimap zu erstellen. |
|
Fügt ein Element oder einen Bereich von Elementen in multimap ein. |
|
Ruft eine Kopie des Vergleichsobjekts ab, das den Reihenfolgentasten in multimap verwendet wird. |
|
Gibt einen Iterator zum ersten Element in multimap zurück, das mit einem Schlüssel, die gleich oder größer ist als ein angegebener Schlüssel. |
|
Gibt die maximale Länge multimap zurück. |
|
Gibt einen Iterator zurück, der das erste Element in umgekehrten multimap behandelt. |
|
Gibt einen Iterator zurück, der den Speicherort abweicht, der dem letzten Element mit umgekehrten multimap folgt. |
|
Gibt die Anzahl der Elemente in multimap zurück. |
|
Tauscht die Elemente aus zwei multimap S. aus. |
|
Gibt einen Iterator zum ersten Element in multimap zurück, das mit einem Schlüssel, die größer ist, als ein angegebener Schlüssel. |
|
Die Memberfunktion gibt ein Funktionsobjekt zurück, das die Reihenfolge der Elemente in multimap bestimmt, indem es ihre Schlüsselwerte vergleicht. |
Operatoren
Ersetzt die Elemente von multimap durch eine Kopie von einem anderen multimap. |
Anforderungen
Header: <map>
Namespace: std
Die (key, value) Paaren werden in einer Multimap als Objekte vom Typ pair gespeichert.Die Paarklasse fordert den Header <utility>, der automatisch von <map>enthalten ist.
Siehe auch
Referenz
Threadsicherheit in der C++-Standardbibliothek