std::unordered_multimap
es un contenedor asociativo no ordenado que admite claves equivalentes (un unordered_multimap puede contener múltiples copias de cada valor de clave) y que asocia valores de otro tipo con las claves. La clase unordered_multimap admite iteradores hacia adelante. La búsqueda, inserción y eliminación tienen complejidad de tiempo promedio constante.
Internamente, los elementos no están ordenados en ningún orden particular, sino organizados en buckets. En qué bucket se coloca un elemento depende completamente del hash de su clave. Esto permite un acceso rápido a elementos individuales, ya que una vez calculado el hash, este se refiere al bucket exacto donde está colocado el elemento.
El orden de iteración de este contenedor no está garantizado que sea estable (por lo tanto, por ejemplo,
std::equal
no puede usarse para comparar dos
std::unordered_multimap
s), excepto que cada grupo de elementos cuyas claves se comparan
equivalentes
(se comparan iguales con
key_eq()
como comparador) forma un subrango contiguo en el orden de iteración, también accesible con
equal_range()
.
Todas las funciones miembro de
std::unordered_multimap
son
constexpr
: es posible crear y utilizar objetos
std::unordered_multimap
en la evaluación de una expresión constante.
Sin embargo, los objetos
std::unordered_multimap
generalmente no pueden ser
constexpr
, porque cualquier almacenamiento asignado dinámicamente debe liberarse en la misma evaluación de la expresión constante.
un tipo iterador cuyos tipos categoría, valor, diferencia, puntero y tipos de referencia son los mismos que iterator. Este iterador se puede usar para iterar a través de un único cubo pero no entre cubos
const_local_iterator
un tipo iterador cuyos tipos categoría, valor, diferencia, puntero y tipos de referencia son los mismos que const_iterator. Este iterador se puede usar para iterar a través de un único cubo pero no entre cubos
node_type(desde C++17)
una especialización de node handle que representa un nodo del contenedor