std::multimap
es un contenedor asociativo que contiene una lista ordenada de pares clave-valor, permitiendo múltiples entradas con la misma clave. La ordenación se realiza según la función de comparación
Compare
, aplicada a las claves. Las operaciones de búsqueda, inserción y eliminación tienen complejidad logarítmica.
Los iteradores de
std::multimap
iteran en orden no descendente de claves, donde no descendente se define por la comparación que se utilizó para la construcción. Es decir, dado
m
, un
std::multimap
it_l
y
it_r
, iteradores dereferenciables a
m
, con
it_l
<
it_r
.
m.
value_comp
(
)
(
*
it_r,
*
it_l
)
==
false
(de menor a mayor si se utiliza la comparación predeterminada).
El orden de los pares clave-valor cuyas claves son equivalentes en la comparación es el orden de inserción y no cambia.
(since C++11)
En todas partes donde la biblioteca estándar utiliza los
Compare
requisitos, la equivalencia se determina utilizando la relación de equivalencia como se describe en
Compare
. En términos imprecisos, dos objetos
a
y
b
se consideran equivalentes si ninguno es menor que el otro:
!
comp
(
a, b
)
&&
!
comp
(
b, a
)
.
Todas las funciones miembro de
std::multimap
son
constexpr
: es posible crear y utilizar objetos
std::multimap
en la evaluación de una expresión constante.
Sin embargo, los objetos
std::multimap
generalmente no pueden ser
constexpr
, porque cualquier almacenamiento asignado dinámicamente debe liberarse en la misma evaluación de la expresión constante.