std::multimap
est un conteneur associatif qui contient une liste triée de paires clé-valeur, tout en permettant plusieurs entrées avec la même clé. Le tri est effectué selon la fonction de comparaison
Compare
, appliquée aux clés. Les opérations de recherche, d'insertion et de suppression ont une complexité logarithmique.
Les itérateurs de
std::multimap
parcourent les éléments dans un ordre non décroissant des clés, où le non-décroissant est défini par la comparaison utilisée lors de la construction. Autrement dit, étant donné
m
, un
std::multimap
it_l
et
it_r
, itérateurs déréférençables vers
m
, avec
it_l
<
it_r
.
m.
value_comp
(
)
(
*
it_r,
*
it_l
)
==
false
(du plus petit au plus grand si on utilise la comparaison par défaut).
L'ordre des paires clé-valeur dont les clés sont équivalentes par comparaison est l'ordre d'insertion et ne change pas.
(since C++11)
Partout où la bibliothèque standard utilise les
Compare
exigences, l'équivalence est déterminée en utilisant la relation d'équivalence comme décrit sur
Compare
. En termes approximatifs, deux objets
a
et
b
sont considérés équivalents si aucun n'est comparé comme inférieur à l'autre :
!
comp
(
a, b
)
&&
!
comp
(
b, a
)
.
Toutes les fonctions membres de
std::multimap
sont
constexpr
: il est possible de créer et d'utiliser des objets
std::multimap
dans l'évaluation d'une expression constante.
Cependant, les objets
std::multimap
ne peuvent généralement pas être
constexpr
, car toute allocation de mémoire dynamique doit être libérée dans la même évaluation d'expression constante.