std:: multimap
|
Definiert im Header
<map>
|
||
|
template
<
class
Key,
|
(1) | |
|
namespace
pmr
{
template
<
|
(2) | (seit C++17) |
std::multimap
ist ein assoziativer Container, der eine sortierte Liste von Schlüssel-Wert-Paaren enthält und mehrere Einträge mit demselben Schlüssel erlaubt. Die Sortierung erfolgt gemäß der Vergleichsfunktion
Compare
, angewendet auf die Schlüssel. Such-, Einfüge- und Entfernungsoperationen haben logarithmische Komplexität.
Iteratoren von
std::multimap
durchlaufen die Elemente in nicht-absteigender Reihenfolge der Schlüssel, wobei nicht-absteigend durch den beim Konstruieren verwendeten Vergleich definiert ist. Das heißt, gegeben
-
m
, eine
std::multimap - it_l und it_r , dereferenzierbare Iteratoren von m , mit it_l < it_r .
m. value_comp ( ) ( * it_r, * it_l ) == false (aufsteigend bei Verwendung des Standardvergleichs).
|
Die Reihenfolge der Schlüssel-Wert-Paare, deren Schlüssel äquivalent verglichen werden, ist die Einfügereihenfolge und ändert sich nicht. |
(since C++11) |
Überall dort, wo die Standardbibliothek die Compare -Anforderungen verwendet, wird Äquivalenz durch die Äquivalenzrelation bestimmt, wie unter Compare beschrieben. In ungenauer Ausdrucksweise werden zwei Objekte a und b als äquivalent betrachtet, wenn keines als kleiner als das andere verglichen wird: ! comp ( a, b ) && ! comp ( b, a ) .
std::multimap
erfüllt die Anforderungen von
Container
,
AllocatorAwareContainer
,
AssociativeContainer
und
ReversibleContainer
.
Alle Memberfunktionen von
std::multimap
sind
constexpr
: Es ist möglich,
std::multimap
-Objekte in der Auswertung eines konstanten Ausdrucks zu erstellen und zu verwenden.
Allerdings können
|
(seit C++26) |
Inhaltsverzeichnis |
Template-Parameter
|
Dieser Abschnitt ist unvollständig
Grund: Beschreibungen der Template-Parameter hinzufügen. |
Mitgliedertypen
| Typ | Definition | ||||
key_type
|
Key
|
||||
mapped_type
|
T
|
||||
value_type
|
std:: pair < const Key, T > | ||||
size_type
|
Vorzeichenloser Ganzzahltyp (üblicherweise std::size_t ) | ||||
difference_type
|
Vorzeichenbehafteter Ganzzahltyp (üblicherweise std::ptrdiff_t ) | ||||
key_compare
|
Compare
|
||||
allocator_type
|
Allocator
|
||||
reference
|
value_type & | ||||
const_reference
|
const value_type & | ||||
pointer
|
|
||||
const_pointer
|
|
||||
iterator
|
LegacyBidirectionalIterator
und
ConstexprIterator
(seit C++26)
zu
value_type
|
||||
const_iterator
|
LegacyBidirectionalIterator und ConstexprIterator (seit C++26) zu const value_type | ||||
reverse_iterator
|
std:: reverse_iterator < iterator > | ||||
const_reverse_iterator
|
std:: reverse_iterator < const_iterator > | ||||
node_type
(seit C++17)
|
eine Spezialisierung von node handle , die einen Container-Knoten darstellt |
Mitgliedsklassen
vergleicht Objekte vom Typ
value_type
(Klasse) |
Memberfunktionen
Konstruiert den
multimap
(öffentliche Elementfunktion) |
|
zerstört die
multimap
(öffentliche Elementfunktion) |
|
|
weist dem Container Werte zu
(öffentliche Elementfunktion) |
|
|
gibt den zugeordneten Allokator zurück
(öffentliche Elementfunktion) |
|
Iteratoren |
|
|
(C++11)
|
gibt einen Iterator zum Anfang zurück
(öffentliche Elementfunktion) |
|
(C++11)
|
gibt einen Iterator zum Ende zurück
(öffentliche Member-Funktion) |
|
(C++11)
|
gibt einen Reverse-Iterator zum Anfang zurück
(public member function) |
|
(C++11)
|
gibt einen umgekehrten Iterator zum Ende zurück
(öffentliche Elementfunktion) |
Kapazität |
|
|
prüft, ob der Container leer ist
(öffentliche Elementfunktion) |
|
|
gibt die Anzahl der Elemente zurück
(öffentliche Elementfunktion) |
|
|
gibt die maximal mögliche Anzahl von Elementen zurück
(öffentliche Elementfunktion) |
|
Modifikatoren |
|
|
löscht den Inhalt
(öffentliche Elementfunktion) |
|
|
fügt Elemente ein
oder Knoten
(seit C++17)
(öffentliche Elementfunktion) |
|
|
(C++23)
|
fügt eine Reihe von Elementen ein
(öffentliche Elementfunktion) |
|
(C++11)
|
Konstruiert Element direkt vor Ort
(öffentliche Elementfunktion) |
|
(C++11)
|
Konstruiert Elemente direkt unter Verwendung eines Hinweises
(öffentliche Elementfunktion) |
|
löscht Elemente
(öffentliche Elementfunktion) |
|
|
tauscht die Inhalte aus
(öffentliche Elementfunktion) |
|
|
(C++17)
|
extrahiert Knoten aus dem Container
(öffentliche Elementfunktion) |
|
(C++17)
|
fügt Knoten aus einem anderen Container ein
(öffentliche Elementfunktion) |
Lookup |
|
|
gibt die Anzahl der Elemente zurück, die einem bestimmten Schlüssel entsprechen
(öffentliche Elementfunktion) |
|
|
findet Element mit spezifischem Schlüssel
(öffentliche Elementfunktion) |
|
|
(C++20)
|
prüft, ob der Container ein Element mit spezifischem Schlüssel enthält
(öffentliche Elementfunktion) |
|
gibt den Bereich der Elemente zurück, die einem bestimmten Schlüssel entsprechen
(public member function) |
|
|
gibt einen Iterator zum ersten Element zurück,
das nicht kleiner
als der gegebene Schlüssel ist
(öffentliche Elementfunktion) |
|
|
gibt einen Iterator zum ersten Element zurück,
größer
als der angegebene Schlüssel
(public member function) |
|
Beobachter |
|
|
gibt die Funktion zurück, die Schlüssel vergleicht
(öffentliche Elementfunktion) |
|
gibt die Funktion zurück, die Schlüssel in Objekten des Typs
value_type
vergleicht
(öffentliche Elementfunktion) |
|
Nicht-Member-Funktionen
|
(entfernt in C++20)
(entfernt in C++20)
(entfernt in C++20)
(entfernt in C++20)
(entfernt in C++20)
(C++20)
|
vergleicht die Werte von zwei
multimap
s lexikographisch
(Funktions-Template) |
|
spezialisiert den
std::swap
Algorithmus
(Funktions-Template) |
|
|
(C++20)
|
löscht alle Elemente, die bestimmte Kriterien erfüllen
(Funktions-Template) |
Deduktionsleitfäden |
(seit C++17) |
Hinweise
| Feature-Test Makro | Wert | Std | Funktion |
|---|---|---|---|
__cpp_lib_containers_ranges
|
202202L
|
(C++23) | Ranges-Konstruktion und -Einfügung für Container |
__cpp_lib_constexpr_map
|
202502L
|
(C++26) |
constexpr
std::multimap
|
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Fehlerberichte
Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | Angewendet auf | Verhalten wie veröffentlicht | Korrektes Verhalten |
|---|---|---|---|
| LWG 230 | C++98 |
Key
war nicht erforderlich,
CopyConstructible
zu sein
(ein Schlüssel vom Typ
Key
könnte möglicherweise nicht konstruiert werden)
|
Key
ist ebenfalls erforderlich,
um CopyConstructible zu sein |
Siehe auch
|
Sammlung von Schlüssel-Wert-Paaren, sortiert nach Schlüsseln, Schlüssel sind eindeutig
(Klassen-Template) |
|
|
(C++11)
|
Sammlung von Schlüssel-Wert-Paaren, gehasht nach Schlüsseln
(Klassen-Template) |
|
(C++23)
|
passt zwei Container an, um eine Sammlung von Schlüssel-Wert-Paaren zu bieten, sortiert nach Schlüsseln
(Klassen-Template) |