unordered_multimap Class
La classe de modèle décrit un objet qui contrôle une séquence de la longueur variée d'éléments de type std::pair<const Key, Ty>.La séquence est faiblement classée par une fonction de hachage, qui partitionne la séquence en un ensemble ordonné de sous-séquences appelés compartiments.Dans chaque compartiment une fonction de comparaison détermine si une paire d'éléments est le classement équivalent.Chaque élément stocke deux objets, une clé de tri et une valeur.La séquence est représentée d'une façon qui permet la recherche, l'implémentation, et la suppression d'un élément arbitraire avec un certain nombre d'opérations qui peuvent être indépendant du nombre d'éléments dans la séquence (temps fixe), du moins lorsque toutes les compartiments sont peu près de longueur égale.Dans le pire des cas, lorsque tous les éléments sont dans un compartiment, le nombre d'opérations est proportionnel au nombre d'éléments dans la séquence (temps linéaire).De plus, insérant un élément n'invalide pas d'itérateur, et suppression d'un élément invalide uniquement les itérateurs qui pointent vers l'élément supprimé.
template<class Key,
class Ty,
class Hash = std::tr1::hash<Key>,
class Pred = std::equal_to<Key>,
class Alloc = std::allocator<Key> >
class unordered_multimap;
Paramètres
Paramètre |
Description |
Key |
Le type de clé. |
Ty |
Le type mappé. |
Hash |
Le type d'objet de fonction de hachage. |
Pred |
Le type d'objet de fonction de comparaison d'égalité. |
Alloc |
La classe de l'allocateur. |
Membres
Définition de type |
Description |
Le type d'un allocateur de gestion de la mémoire. |
|
Le type d'un itérateur constante pour l'ordre d'exécution des instructions. |
|
Le type d'un itérateur fixe de compartiment pour l'ordre d'exécution des instructions. |
|
Le type d'un pointeur constante à un élément. |
|
Le type d'une référence à une constante à un élément. |
|
Le type d'une distance signée entre deux éléments. |
|
Le type de la fonction de hachage. |
|
Le type d'un itérateur pour l'ordre d'exécution des instructions. |
|
Le type de la fonction de comparaison. |
|
Le type d'une clé classante. |
|
Le type d'un itérateur de compartiment pour l'ordre d'exécution des instructions. |
|
Le type d'une valeur mappée associé à chaque clé. |
|
Le type d'un pointeur à un élément. |
|
Le type d'une référence à un élément. |
|
Le type d'une distance non signée entre deux éléments. |
|
Le type d'un élément. |
Fonction membre |
Description |
Désigne le début de la séquence contrôlée. |
|
Obtient le numéro du compartiment pour une valeur de clé. |
|
Obtient le nombre de compartiments. |
|
Obtient la taille d'un compartiment. |
|
Désigne le début de la séquence contrôlée. |
|
Désigne la fin de la séquence contrôlée. |
|
Supprime tous les éléments. |
|
Recherche le nombre d'éléments correspondant à une clé spécifiée. |
|
Ajoute un élément construit en place. |
|
Ajoute un élément construit en place, avec l'indicateur. |
|
Teste si aucun élément n'est présent. |
|
Désigne la fin de la séquence contrôlée. |
|
Recherche la plage qui correspond à une clé spécifiée. |
|
Supprime les éléments placés aux positions spécifiées. |
|
Recherche un élément qui correspond à une clé spécifiée. |
|
Obtient l'objet d'allocation stocké. |
|
Obtient l'objet stocké de fonction de hachage. |
|
Ajoute des éléments. |
|
Obtient l'objet stocké de fonction de comparaison. |
|
Compte les éléments par un compartiment. |
|
Obtient le nombre maximal de compartiments. |
|
Obtient ou définit des éléments maximum par compartiment. |
|
Obtient la taille maximale de l'ordre d'exécution des instructions. |
|
Régénère la table de hachage. |
|
Compte le nombre d'éléments. |
|
Échange le contenu de deux conteneurs. |
|
Construit un objet conteneur. |
Opérateur |
Description |
Copie une table de hachage. |
Notes
L'objet de la séquence qu'il contrôle en appelant deux objets stockés, un objet de fonction de comparaison de type unordered_multimap::key_equal et un objet de fonction de hachage de type unordered_multimap::hasher.Vous accédez à l'objet préalablement stocké en appelant la fonction membre unordered_multimap::key_eq(); et vous accédez au deuxième objet stocké en appelant la fonction membre unordered_multimap::hash_function().Spécifiquement, pour toutes les valeurs X et Y de type Key, l'appel key_eq()(X, Y) retourne la valeur true uniquement si les deux valeurs d'argument ont le classement équivalent ; l'appel hash_function()(keyval) référence une distribution des valeurs de type size_t.Contrairement à la classe de modèle unordered_map Class, un objet de classe de modèle unordered_multimap ne garantit pas qu' key_eq()(X, Y) est toujours false pour deux éléments quelconques de l'ordre d'exécution des instructions.(Les clés n'ont pas besoin d'être uniques.)
L'objet stocke également un facteur de charge maximale, qui spécifie le nombre moyen souhaité par maximal d'éléments par compartiment.Si insérer un élément fait dépasser unordered_multimap::load_factor() le facteur de charge maximale, le conteneur augmente le nombre de compartiments et régénère la table de hachage si nécessaire.
La commande réelle d'éléments dans l'ordre d'exécution des instructions dépend de la fonction de hachage, de la fonction de comparaison, la commande d'implémentation, le facteur de charge maximale, et le nombre actuel de compartiments.Vous ne pouvez généralement pas prédire l'ordre des éléments dans l'ordre d'exécution des instructions.Vous pouvez toujours être sûr, cependant, que tout sous-ensemble d'éléments qui ont le classement équivalent soit adjacent dans l'ordre d'exécution des instructions.
L'objet alloue et libère la mémoire pour la séquence qu'elle contrôle via un objet d'allocation stocké de type unordered_multimap::allocator_type.Un tel objet d'allocation doit avoir la même interface externe comme objet de classe de modèle allocator.Notez que l'objet d'allocation enregistré n'est pas copié lorsque l'objet conteneur est assigné.
Configuration requise
en-tête : <unordered_map>
l'espace de noms : DST