Partager via


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

unordered_multimap::allocator_type

Le type d'un allocateur de gestion de la mémoire.

unordered_multimap::const_iterator

Le type d'un itérateur constante pour l'ordre d'exécution des instructions.

unordered_multimap::const_local_iterator

Le type d'un itérateur fixe de compartiment pour l'ordre d'exécution des instructions.

unordered_multimap::const_pointer

Le type d'un pointeur constante à un élément.

unordered_multimap::const_reference

Le type d'une référence à une constante à un élément.

unordered_multimap::difference_type

Le type d'une distance signée entre deux éléments.

unordered_multimap::hasher

Le type de la fonction de hachage.

unordered_multimap::iterator

Le type d'un itérateur pour l'ordre d'exécution des instructions.

unordered_multimap::key_equal

Le type de la fonction de comparaison.

unordered_multimap::key_type

Le type d'une clé classante.

unordered_multimap::local_iterator

Le type d'un itérateur de compartiment pour l'ordre d'exécution des instructions.

unordered_multimap::mapped_type

Le type d'une valeur mappée associé à chaque clé.

unordered_multimap::pointer

Le type d'un pointeur à un élément.

unordered_multimap::reference

Le type d'une référence à un élément.

unordered_multimap::size_type

Le type d'une distance non signée entre deux éléments.

unordered_multimap::value_type

Le type d'un élément.

Fonction membre

Description

unordered_multimap::begin

Désigne le début de la séquence contrôlée.

unordered_multimap::bucket

Obtient le numéro du compartiment pour une valeur de clé.

unordered_multimap::bucket_count

Obtient le nombre de compartiments.

unordered_multimap::bucket_size

Obtient la taille d'un compartiment.

unordered_multimap::cbegin

Désigne le début de la séquence contrôlée.

unordered_multimap::cend

Désigne la fin de la séquence contrôlée.

unordered_multimap::clear

Supprime tous les éléments.

unordered_multimap::count

Recherche le nombre d'éléments correspondant à une clé spécifiée.

unordered_multimap::emplace

Ajoute un élément construit en place.

unordered_multimap::emplace_hint

Ajoute un élément construit en place, avec l'indicateur.

unordered_multimap::empty

Teste si aucun élément n'est présent.

unordered_multimap::end

Désigne la fin de la séquence contrôlée.

unordered_multimap::equal_range

Recherche la plage qui correspond à une clé spécifiée.

unordered_multimap::erase

Supprime les éléments placés aux positions spécifiées.

unordered_multimap::find

Recherche un élément qui correspond à une clé spécifiée.

unordered_multimap::get_allocator

Obtient l'objet d'allocation stocké.

unordered_multimap::hash_function

Obtient l'objet stocké de fonction de hachage.

unordered_multimap::insert

Ajoute des éléments.

unordered_multimap::key_eq

Obtient l'objet stocké de fonction de comparaison.

unordered_multimap::load_factor

Compte les éléments par un compartiment.

unordered_multimap::max_bucket_count

Obtient le nombre maximal de compartiments.

unordered_multimap::max_load_factor

Obtient ou définit des éléments maximum par compartiment.

unordered_multimap::max_size

Obtient la taille maximale de l'ordre d'exécution des instructions.

unordered_multimap::rehash

Régénère la table de hachage.

unordered_multimap::size

Compte le nombre d'éléments.

unordered_multimap::swap

Échange le contenu de deux conteneurs.

unordered_multimap::unordered_multimap

Construit un objet conteneur.

Opérateur

Description

unordered_multimap::operator=

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

Voir aussi

Référence

<unordered_map>

unordered_multimap Class