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
)
.
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
std::multimap
-Objekte im Allgemeinen nicht
constexpr
sein, da jeder dynamisch allokierte Speicher in derselben Auswertung des konstanten Ausdrucks freigegeben werden muss.