Partager via


unordered_multiset 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 const Key.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 sert de clé de tri et de 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 Hash = std::hash<Key>,
    class Pred = std::equal_to<Key>,
    class Alloc = std::allocator<Key> >
    class unordered_multiset;

Paramètres

Paramètre

Description

Key

le type de clé.

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

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

unordered_multiset::const_iterator

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

unordered_multiset::const_local_iterator

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

unordered_multiset::const_pointer

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

unordered_multiset::const_reference

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

unordered_multiset::difference_type

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

unordered_multiset::hasher

le type de la fonction de hachage.

unordered_multiset::iterator

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

unordered_multiset::key_equal

le type de la fonction de comparaison.

unordered_multiset::key_type

Le type d'une clé de classement.

unordered_multiset::local_iterator

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

unordered_multiset::pointer

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

unordered_multiset::reference

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

unordered_multiset::size_type

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

unordered_multiset::value_type

le type d'un élément.

fonction membre

Description

unordered_multiset::begin

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

unordered_multiset::bucket

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

unordered_multiset::bucket_count

Obtient le nombre de compartiments restant.

unordered_multiset::bucket_size

Obtient la taille d'un compartiment.

unordered_multiset::cbegin

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

unordered_multiset::cend

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

unordered_multiset::clear

supprime tous les éléments.

unordered_multiset::count

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

unordered_multiset::emplace

ajoute un élément construit en place.

unordered_multiset::emplace_hint

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

unordered_multiset::empty

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

unordered_multiset::end

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

unordered_multiset::equal_range

les recherches s'étendent qui correspond à une clé spécifiée.

unordered_multiset::erase

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

unordered_multiset::find

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

unordered_multiset::get_allocator

obtient l'objet d'allocation stocké.

unordered_multiset::hash_function

obtient l'objet stocké de fonction de hachage.

unordered_multiset::insert

ajoute des éléments.

unordered_multiset::key_eq

obtient l'objet stocké de fonction de comparaison.

unordered_multiset::load_factor

Compte les éléments moyens par compartiment.

unordered_multiset::max_bucket_count

Obtient le nombre maximal de compartiments restant.

unordered_multiset::max_load_factor

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

unordered_multiset::max_size

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

unordered_multiset::rehash

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

unordered_multiset::size

Compte le nombre d'éléments.

unordered_multiset::swap

Échange le contenu de deux conteneurs.

unordered_multiset::unordered_multiset

Construit un objet.

Opérateur

Description

unordered_multiset::operator=

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_multiset::key_equal et un objet de fonction de hachage de type unordered_multiset::hasher.vous accédez au premier objet enregistré en appelant la fonction membre unordered_multiset::key_eq(); et vous accédez au deuxième objet stocké en appelant la fonction membre unordered_multiset::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_set Class, un objet de classe de modèle unordered_multiset ne garantit pas qu' key_eq()(X, Y) est toujours false pour deux éléments de de la séquence contrôlée.(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é à maximal d'éléments par compartiment.Si insérer un élément fait dépasser par unordered_multiset::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_multiset::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_set>

l'espace de noms : type

Voir aussi

Référence

<unordered_set>

unordered_multiset Class

Autres ressources

<unordered_set> membres