std::multimap
| Definiert in 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 zulässt. Die Sortierung erfolgt gemäß der Vergleichsfunktion Compare, angewendet auf die Schlüssel. Such-, Einfüge- und Löschoperationen haben logarithmische Komplexität.
Iteratoren von std::multimap iterieren in nicht absteigender Reihenfolge der Schlüssel, wobei nicht absteigend durch den für die Konstruktion verwendeten Vergleich definiert ist. Das heißt, gegeben
- m, ein
std::multimap - it_l und it_r, dereferenzierbare Iteratoren zu m, mit it_l < it_r.
m.value_comp()(*it_r, *it_l) == false (von klein nach groß, wenn die Standardvergleichsfunktion verwendet wird).
|
Die Reihenfolge der Schlüssel-Wert-Paare mit äquivalenten Schlüsseln ist die Einfügereihenfolge und ändert sich nicht. |
(seit C++11) |
Überall dort, wo die Standardbibliothek die Compare-Anforderungen verwendet, wird die Äquivalenz mithilfe der auf Compare beschriebenen Äquivalenzrelation bestimmt. Ungenau ausgedrückt, gelten zwei Objekte a und b als äquivalent, wenn keines kleiner als das andere ist: !comp(a, b) && !comp(b, a).
std::multimap erfüllt die Anforderungen von Container, AllocatorAwareContainer, AssociativeContainer und ReversibleContainer.
|
Alle Member-Funktionen von |
(seit C++26) |
Inhalt |
[edit] Template-Parameter
| Dieser Abschnitt ist unvollständig Grund: Beschreibungen der Template-Parameter hinzufügen. |
[edit] Member-Typen
| Typ | Definition | ||||
key_type
|
Key | ||||
mapped_type
|
T | ||||
value_type
|
std::pair<const Key, T> | ||||
size_type
|
Vorzeichenloser Ganzzahltyp (normalerweise std::size_t) | ||||
difference_type
|
Vorzeichenbehafteter Ganzzahltyp (normalerweise std::ptrdiff_t) | ||||
key_compare
|
Compare | ||||
allocator_type
|
Allocator | ||||
Referenz
|
value_type& | ||||
const_reference
|
const value_type& | ||||
Zeiger
|
| ||||
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 Containerknoten repräsentiert |
[edit] Member-Klassen
vergleicht Objekte vom Typ value_type(class) |
[edit] Member-Funktionen
konstruiert die multimap(public member function) | |
destruiert die multimap(public member function) | |
| weist dem Container Werte zu (public member function) | |
| gibt den zugehörigen Allocator zurück (public member function) | |
Iteratoren | |
| (C++11) |
gibt einen Iterator zum Anfang zurück (public member function) |
| (C++11) |
gibt einen Iterator zum Ende zurück (public member function) |
| (C++11) |
gibt einen Reverse-Iterator zum Anfang zurück (public member function) |
| (C++11) |
gibt einen Reverse-Iterator zum Ende zurück (public member function) |
Kapazität | |
| prüft, ob der Container leer ist (public member function) | |
| Gibt die Anzahl der Elemente zurück (public member function) | |
| Gibt die maximal mögliche Anzahl von Elementen zurück (public member function) | |
Modifizierer | |
| leert den Inhalt (public member function) | |
| fügt Elemente ein oder Knoten(seit C++17) (public member function) | |
| (C++23) |
fügt einen Bereich von Elementen ein (public member function) |
| (C++11) |
konstruiert Elemente direkt (in-place) (public member function) |
| (C++11) |
konstruiert Elemente "in place" unter Verwendung eines Hinweises (public member function) |
| entfernt Elemente (public member function) | |
| tauscht die Inhalte (public member function) | |
| (C++17) |
extrahiert Knoten aus dem Container (public member function) |
| (C++17) |
fügt Knoten aus einem anderen Container zusammen (public member function) |
Suche | |
| gibt die Anzahl der Elemente zurück, die einem bestimmten Schlüssel entsprechen (public member function) | |
| sucht ein Element mit einem bestimmten Schlüssel (public member function) | |
| (C++20) |
prüft, ob der Container ein Element mit einem bestimmten Schlüssel enthält (public member function) |
| gibt den Bereich von Elementen 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 (public member function) | |
| gibt einen Iterator zum ersten Element zurück, das *größer* als der gegebene Schlüssel ist (public member function) | |
Observer | |
| gibt die Funktion zurück, die Schlüssel vergleicht (public member function) | |
gibt die Funktion zurück, die Schlüssel in Objekten vom Typ value_type vergleicht(public member function) | |
[edit] 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 lexikographisch die Werte zweier multimaps(function template) |
| spezialisiert den Algorithmus std::swap (function template) | |
| (C++20) |
entfernt alle Elemente, die bestimmte Kriterien erfüllen (function template) |
Deduction Guides |
(seit C++17) |
[edit] Anmerkungen
| Feature-Test-Makro | Wert | Std | Feature |
|---|---|---|---|
__cpp_lib_containers_ranges |
202202L |
(C++23) | Bereichskonstruktion und -einfügung für Container |
__cpp_lib_constexpr_containers |
202502L |
(C++26) | constexpr std::multimap |
[edit] Beispiel
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |
[edit] Fehlerberichte
Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| LWG 230 | C++98 | Key musste nicht CopyConstructible sein(ein Schlüssel vom Typ Key konnte möglicherweise nicht konstruiert werden) |
Key musste außerdemCopyConstructible sein |
[edit] Siehe auch
| Sammlung von Schlüssel-Wert-Paaren, sortiert nach Schlüsseln, Schlüssel sind eindeutig (Klassenvorlage) | |
| (C++11) |
Sammlung von Schlüssel-Wert-Paaren, gehasht nach Schlüsseln (Klassenvorlage) |
| (C++23) |
passt zwei Container an, um eine Sammlung von Schlüssel-Wert-Paaren, sortiert nach Schlüsseln, bereitzustellen (Klassenvorlage) |