std::unordered_multimap
est un conteneur associatif non ordonné qui prend en charge des clés équivalentes (un unordered_multimap peut contenir plusieurs copies de chaque valeur de clé) et qui associe des valeurs d'un autre type aux clés. La classe unordered_multimap prend en charge les itérateurs avant. La recherche, l'insertion et la suppression ont une complexité en temps constant en moyenne.
En interne, les éléments ne sont pas triés dans un ordre particulier, mais organisés en compartiments. Le compartiment dans lequel un élément est placé dépend entièrement du hash de sa clé. Cela permet un accès rapide aux éléments individuels, car une fois le hash calculé, il fait référence au compartiment exact où l'élément est placé.
L'ordre d'itération de ce conteneur n'est pas requis d'être stable (ainsi, par exemple,
std::equal
ne peut pas être utilisé pour comparer deux
std::unordered_multimap
s), sauf que chaque groupe d'éléments dont les clés sont
équivalentes
(comparées égales avec
key_eq()
comme comparateur) forme un sous-intervalle contigu dans l'ordre d'itération, également accessible avec
equal_range()
.
Toutes les fonctions membres de
std::unordered_multimap
sont
constexpr
: il est possible de créer et d'utiliser des objets
std::unordered_multimap
lors de l'évaluation d'une expression constante.
Cependant, les objets
std::unordered_multimap
ne peuvent généralement pas être
constexpr
, car toute allocation de mémoire dynamique doit être libérée lors de la même évaluation d'expression constante.
un type itérateur dont les types catégorie, valeur, différence, pointeur et référence sont les mêmes que iterator. Cet itérateur peut être utilisé pour itérer à travers un seul compartiment mais pas entre les compartiments
const_local_iterator
un type itérateur dont les types catégorie, valeur, différence, pointeur et référence sont les mêmes que const_iterator. Cet itérateur peut être utilisé pour itérer à travers un seul compartiment mais pas entre les compartiments
node_type(depuis C++17)
une spécialisation de node handle représentant un nœud de conteneur