Freigeben über


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

1ka6hya8.collapse_all(de-de,VS.110).gifKonstruktoren

multimap

Erstellt multimap, das leer ist oder, das eine Kopie von vollständig oder teilweise von anderen multimap ist.

1ka6hya8.collapse_all(de-de,VS.110).gifTypedefs

allocator_type

Ein Typ, der die allocator-Klasse für das multimap-Objekt darstellt.

const_iterator

Ein Typ, der einen bidirektionalen Iterator stellt, der ein Element in constmultimap lesen kann.

const_pointer

Ein Typ, der einen Zeiger auf einen const-Element in multimap bereitstellt.

const_reference

Ein Typ, der einen Verweis auf ein const-Element bereitstellt, gespeicherten in multimap zum Lesen und Ausführen von const Vorgänge.

const_reverse_iterator

Ein Typ, der einen bidirektionalen Iterator stellt, der beliebige const-Element in multimap lesen kann.

difference_type

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.

Iterator

Ein Typ, der den Unterschied zwischen zwei Iteratoren bereitstellt, die Elemente innerhalb derselben multimap verweisen.

key_compare

Ein Typ, der ein Funktionsobjekt bereitstellt, das zwei Sortierschlüssel vergleichen kann, um die relative Reihenfolge von zwei Elementen in multimap zu bestimmen.

key_type

Ein Typ, der das Sortierschlüsselobjekt beschreibt, das jedes Element multimap bildet.

mapped_type

Ein Typ, der den Datentyp darstellt, in multimap gespeichert wurden.

pointer

Ein Typ, der einen Zeiger auf einen const-Element in multimap bereitstellt.

Verweis

Ein Typ, der einen Verweis auf ein Element bereitstellt, gespeicherten in multimap.

reverse_iterator

Ein Typ, der einen bidirektionalen Iterator stellt, der lesen kann oder ein Element in multimap umgekehrten ändert.

size_type

Ein vorzeichenlose Typ ganzen Zahl, der einen Zeiger auf einen const-Element in multimap bereitstellt.

value_type

Ein Typ, der ein Funktionsobjekt bereitstellt, das zwei Elemente als Sortierschlüssel vergleichen kann, um deren relative Position in multimap zu bestimmen.

1ka6hya8.collapse_all(de-de,VS.110).gifMemberfunktionen

begin

Gibt einen Iterator zurück, der das erste Element in multimap behandelt.

multimap::cbegin

Gibt einen konstanten Iterator zurück, der das erste Element in multimap behandelt.

multimap::cend

Gibt einen konstanten Iterator zurück, der den Speicherort abweicht, der dem letzten Element mit multimap folgt.

clear

Löscht alle Elemente aus multimap.

count

Gibt die Anzahl der Elemente in multimap zurück, dessen Schlüssel eine Parameter-angegebene Schlüssel entspricht.

multimap::crbegin

Gibt einen konstanten Iterator zurück, der das erste Element in umgekehrten multimap behandelt.

multimap::crend

Gibt einen konstanten Iterator zurück, der den Speicherort abweicht, der dem letzten Element mit umgekehrten multimap folgt.

multimap::emplace

Fügt ein - Element ein, das an der Stelle in multimap erstellt wird.

multimap::emplace_hint

Fügt ein - Element ein, das an der Stelle in multimap, mit einem Platzierungs-Hinweis erstellt wird

empty

Prüft, ob multimap leer ist.

end

Gibt einen Iterator zurück, der den Speicherort abweicht, der dem letzten Element mit multimap folgt.

equal_range

Sucht den Bereich von Elementen, in der der Schlüssel des Elements einen angegebenen Wert entspricht.

erase

Entfernt ein Element oder einen Bereich von Elementen in multimap von den angegebenen Speicherorten oder Elemente entfernt, die einen angegebenen Schlüssel übereinstimmen.

find

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.

get_allocator

Gibt eine Kopie des allocator-Objekts zurück, das verwendet wird, um multimap zu erstellen.

insert

Fügt ein Element oder einen Bereich von Elementen in multimap ein.

key_comp

Ruft eine Kopie des Vergleichsobjekts ab, das den Reihenfolgentasten in multimap verwendet wird.

lower_bound

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.

max_size

Gibt die maximale Länge multimap zurück.

rbegin

Gibt einen Iterator zurück, der das erste Element in umgekehrten multimap behandelt.

rend

Gibt einen Iterator zurück, der den Speicherort abweicht, der dem letzten Element mit umgekehrten multimap folgt.

size

Gibt die Anzahl der Elemente in multimap zurück.

swap

Tauscht die Elemente aus zwei multimap S. aus.

upper_bound

Gibt einen Iterator zum ersten Element in multimap zurück, das mit einem Schlüssel, die größer ist, als ein angegebener Schlüssel.

value_comp

Die Memberfunktion gibt ein Funktionsobjekt zurück, das die Reihenfolge der Elemente in multimap bestimmt, indem es ihre Schlüsselwerte vergleicht.

1ka6hya8.collapse_all(de-de,VS.110).gifOperatoren

multimap::operator=

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

Standardvorlagenbibliothek

Weitere Ressourcen

Multimap Member

<map> Member

Headerdateien