Partager via


unordered_map 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 restant.Dans chaque compartiment une fonction de comparaison détermine si une paire d'éléments a classer équivalent.Chaque élément stocke deux objets, une clé de tri et une valeur.La séquence sont représentées d'une manière qui permet la recherche, l'insertion, et la suppression d'un élément arbitraire avec un certain nombre d'opérations qui peuvent être indépendante du nombre d'éléments dans la séquence (temps fixe), du moins lorsque toutes les compartiments sont sensiblement 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érez un élément n'invalide aucun 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::hash<Key>,
    class Pred = std::equal_to<Key>,
    class Alloc = std::allocator<std::pair<const Key, Ty> > >
    class unordered_map;

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_map::allocator_type

le type d'un allocateur pour gérer le stockage.

unordered_map::const_iterator

Le type d'un itérateur constante pour la séquence contrôlée.

unordered_map::const_local_iterator

Le type d'un itérateur fixe de compartiment pour la séquence contrôlée.

unordered_map::const_pointer

le type d'un pointeur constant à un élément.

unordered_map::const_reference

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

unordered_map::difference_type

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

unordered_map::hasher

le type de la fonction de hachage.

unordered_map::iterator

Le type d'un itérateur pour la séquence contrôlée.

unordered_map::key_equal

le type de la fonction de comparaison.

unordered_map::key_type

Le type d'une clé de classement.

unordered_map::local_iterator

Le type d'un itérateur de compartiment pour la séquence contrôlée.

unordered_map::mapped_type

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

unordered_map::pointer

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

unordered_map::reference

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

unordered_map::size_type

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

unordered_map::value_type

le type d'un élément.

fonction membre

Description

hash_map::begin

Recherche un élément à la clé spécifiée.

unordered_map::begin

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

unordered_map::bucket

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

unordered_map::bucket_count

Obtient le nombre de compartiments restant.

unordered_map::bucket_size

Obtient la taille d'un compartiment.

hash_map::begin

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

hash_map::begin

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

unordered_map::clear

supprime tous les éléments.

unordered_map::count

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

hash_map::begin

ajoute un élément construit en place.

hash_map::begin

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

unordered_map::empty

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

unordered_map::end

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

unordered_map::equal_range

Chaîne de recherche qui correspond à une clé spécifiée.

unordered_map::erase

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

unordered_map::find

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

unordered_map::get_allocator

obtient l'objet d'allocation stocké.

unordered_map::hash_function

obtient l'objet stocké de fonction de hachage.

unordered_map::insert

ajoute des éléments.

unordered_map::key_eq

obtient l'objet stocké de fonction de comparaison.

unordered_map::load_factor

Compte les éléments moyens par compartiment.

unordered_map::max_bucket_count

Obtient le nombre maximal de compartiments restant.

unordered_map::max_load_factor

Obtient ou définit des éléments de threads compartiment.

unordered_map::max_size

Obtient la taille maximale de la séquence contrôlée.

unordered_map::rehash

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

unordered_map::size

Compte le nombre d'éléments.

unordered_map::swap

Échange le contenu de deux conteneurs.

unordered_map::unordered_map

Construit un objet.

Opérateur

Description

unordered_map::operator[]

Recherches ou insère un élément avec la clé spécifiée.

hash_map::begin

copie une table de hachage.

Notes

L'objet classe la séquence qu'il contrôle en appelant deux objets stockés, un objet de fonction de comparaison de type unordered_map::key_equal et un objet de fonction de hachage de type unordered_map::hasher.vous accédez au premier objet enregistré en appelant la fonction membre unordered_map::key_eq(); et vous accédez au deuxième objet stocké en appelant la fonction membre unordered_map::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 équivalents ; l'appel hash_function()(keyval) produit une distribution des valeurs de type size_t.Contrairement à la classe de modèle unordered_multimap Class, un objet de classe de modèle unordered_map garantit qu' key_eq()(X, Y) est toujours false pour deux éléments de de la séquence contrôlée.(Les clés sont uniques.)

L'objet stocke également un facteur de charge maximale, qui spécifie le nombre moyen souhaité à maximal d'éléments par compartiment.Si insérer un élément fait dépasser par unordered_map::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 des éléments dans la séquence contrôlée dépend de la fonction de hachage, la fonction de comparaison, la commande de mise en place, le facteur de charge maximale ; le nombre actuel de compartiments restant.Vous ne pouvez généralement pas prédire l'ordre des éléments dans la séquence contrôlée.Vous pouvez toujours être sûr, cependant, que tout sous-ensemble d'éléments qui ont le classement équivalent sont situées dans la séquence contrôlée.

L'objet alloue et libère le stockage pour la séquence qu'elle contrôle via un objet d'allocation stocké de type unordered_map::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 stocké n'est pas copié lorsque l'objet conteneur est assigné.

Configuration requise

en-tête : <unordered_map>

l'espace de noms : type

Voir aussi

Référence

<unordered_map>

unordered_map Class

Autres ressources

<unordered_map> membres