Partager via


multiset Class

La Standard Template Library multiensemble classe est utilisée pour le stockage et la récupération de données à partir d'une collection dans laquelle les valeurs des éléments contenus pas nécessairement uniques et dans lequel ils servent les valeurs de clé en fonction de laquelle les données sont automatiquement classées.La valeur de clé d'un élément dans un multiensemble ne peut pas être modifiée directement.Anciennes valeurs doivent être supprimés et les éléments avec de nouvelles valeurs insérées.

template <
   class Key, 
   class Compare=less<Key>, 
   class Allocator=allocator<Key> 
>
class multiset

Paramètres

  • Clé
    Le type de données élément doivent être stockées dans le multiset.

  • Comparaison
    Le type qui fournit un objet de fonction qui peut comparer deux valeurs d'élément en tant que clés de tri pour déterminer leur ordre relatif dans le multiset.Le prédicat binaire moins<Key> est la valeur par défaut.

  • Allocator
    Le type qui représente l'objet allocateur stockée qui encapsule les détails sur l'allocation et la désallocation de mémoire le multiset.La valeur par défaut est allocateur*<Key>.*

Notes

La STL est de type multiset classe :

  • Un conteneur associatif, qui est un conteneur de taille variable qui prend en charge l'extraction efficace des valeurs d'élément basé sur une valeur de clé associée.

  • Réversible, car il fournit les itérateurs bidirectionnels pour accéder à ses éléments.

  • Triées, parce que ses éléments sont ordonnés en fonction des valeurs de clé dans le conteneur, conformément à une fonction de comparaison spécifié.

  • Multiple dans le sens où ses éléments est inutile d'avoir des clés uniques, afin qu'une valeur de clé peut avoir plusieurs valeurs d'élément lui est associés.

  • Un simple conteneur associatif, car les valeurs de ses éléments sont ses valeurs clés.

  • Une classe de modèle, car la fonctionnalité qu'il propose est donc indépendante du type de données contenu en tant qu'éléments spécifique et génériques.Le type de données à utiliser est, au lieu de cela, spécifié en tant que paramètre dans le modèle de classe avec l'allocateur et la fonction de comparaison.

L'itérateur fournie par la classe de type multiset est un itérateur bidirectionnel, mais les fonctions membres de classe Insertion et multiset ont des versions qui prennent comme paramètres de modèle un itérateur d'entrée plus faible, dont les exigences de fonctionnalité sont plus minimes que ceux garantis par la classe des itérateurs bidirectionnels.Les concepts d'itérateur différents forment une famille liée par des perfectionnements dans leurs fonctionnalités.Chaque concept itérateur possède son propre ensemble d'exigences et les algorithmes qui fonctionnent avec eux doivent limiter leurs hypothèses aux exigences prévues par ce type d'itérateur.Il peut être supposé qu'un itérateur d'entrée peut être déréférencé pour faire référence à un objet et qu'il peut être incrémentée à l'itérateur suivant dans la séquence.Il s'agit d'un ensemble minimal de fonctionnalités, mais elle est suffisante pour pouvoir parler d'une plage d'itérateurs concrètement [_First, _Last) dans le cadre des fonctions de membre de la classe.

Le choix du type de conteneur doit reposer en général du type de recherche et insertion requises par l'application.Conteneurs associatifs sont optimisés pour les opérations de recherche, d'insertion et de suppression.Les fonctions membres qui prennent en charge explicitement de ces opérations sont efficaces, leur exécution dans un délai qui est en moyenne proportionnelle au logarithme du nombre d'éléments dans le conteneur.Insertion d'éléments n'invalide aucune itérateurs et la suppression d'éléments invalide uniquement les itérateurs qui avaient désigné spécifiquement les éléments supprimés.

Le multiset doit être le conteneur associatif de choix lorsque les conditions d'association des valeurs avec leurs clés sont satisfait par l'application.Les éléments d'un multiensemble peuvent être multiples et servir leurs propres clés de tri, afin que les clés ne sont pas uniques.Un modèle de ce type de structure est une liste ordonnée de mots par exemple, dans lequel les mots peuvent se produire plusieurs fois.Avaient plusieurs occurrences des mots pas été autorisés, puis un jeu aurait été la structure conteneur approprié.Si les définitions uniques ont été joints sous forme de valeurs à la liste des mots clés uniques, une carte serait une structure appropriée pour contenir ces données.Si au lieu de cela les définitions n'étaient pas uniques, une multimap serait le conteneur de choix.

Le multiensemble trie la séquence qu'il contrôle en appelant un objet de fonction stockée de type Compare.Cet objet stocké est une fonction de comparaison peut-être être accessibles en appelant la fonction membre key_comp.En règle générale, les éléments doivent être simplement moins comparables pour établir cet ordre : afin que, compte tenu de tous les deux éléments, il peut être déterminé soit qu'elles sont équivalentes (dans le sens qui n'est ni inférieure à l'autre) ou que l'un est inférieur à l'autre.Il en résulte un classement entre les éléments nonequivalent.Sur une note plus technique, la fonction de comparaison est un prédicat binaire qui induit un ordonnancement faible stricte au sens mathématique standard.Un prédicat binaire f(x,y) est un objet de fonction qui a deux objets d'argument x et y et une valeur de retour de true ou false.Un ordre imposé sur un ensemble est une faible stricte de commande si le prédicat binaire est irréflexive, ANTISYMETRIQUE et transitive et si l'équivalence est transitive, où deux objets x et y sont définis pour être équivalentes lorsque les deux f(x, y) et f(y, x) ont la valeur false.Si la condition plus forte de l'égalité entre les clés remplace ceux de l'équivalence, l'ordre devient total (dans le sens où tous les éléments sont triés par rapport à l'autre) et les clés de correspondance sera indiscernible à partir d'eux.

w5txk7zc.collapse_all(fr-fr,VS.110).gifConstructeurs

MULTISET

Construit un multiset qui est vide ou qui est une copie de tous les ou une partie d'un multiset.

w5txk7zc.collapse_all(fr-fr,VS.110).gifTypedef

allocator_type

Un typedef pour le allocator de classe pour le multiset objet.

const_iterator

Un typedef pour un itérateur bidirectionnel capable de lire un const élément dans le multiset.

const_pointer

Un typedef pour un pointeur vers un const élément dans un multiset.

const_reference

Un typedef pour une référence à une const élément stocké dans un multiset pour la lecture et exécution de const opérations.

const_reverse_iterator

Un typedef pour un itérateur bidirectionnel qui peut lire aucun const élément dans le multiset.

difference_type

Entier signé typedef pour le nombre d'éléments d'un multiset dans une plage entre les éléments indiqué par les itérateurs.

itérateur

Un typedef pour un itérateur bidirectionnel qui peut lire ou modifier n'importe quel élément dans une multiset.

key_compare

Un typedef pour un objet de fonction qui peut comparer deux clés pour déterminer l'ordre relatif de deux éléments dans le multiset.

KEY_TYPE

Un typedef pour un objet de fonction qui peut comparer deux clés de tri pour déterminer l'ordre relatif de deux éléments dans le multiset.

pointer

Un typedef pour un pointeur vers un élément dans un multiset.

Référence

Un typedef pour une référence à un élément stocké dans un multiset.

reverse_iterator

Un typedef pour un itérateur bidirectionnel qui peut lire ou modifier un élément dans une inversion multiset.

size_type

Un type d'entier non signé qui peut représenter le nombre d'éléments dans un multiset.

value_compare

Le typedef pour un objet de fonction qui peut comparer deux éléments en tant que clés de tri pour déterminer leur ordre relatif dans le multiset.

Value_type

Un typedef qui décrit un objet stocké en tant qu'élément comme un multiset dans sa capacité en tant que valeur.

w5txk7zc.collapse_all(fr-fr,VS.110).gifMéthodes

begin

Retourne un itérateur qui pointe vers le premier élément dans la multiset.

clear

Efface tous les éléments d'un multiset.

count

Renvoie le nombre d'éléments dans un multiset dont la clé correspond à la clé spécifiée en tant que paramètre.

empty

Teste si une multiset est vide.

end

Retourne un itérateur qui pointe vers l'emplacement après le dernier élément dans un multiset.

equal_range

Retourne une paire d'itérateurs.L'itérateur première dans les points de paire pour le premier élément dans un multiset avec une clé qui est supérieure à une clé spécifiée.Le second itérateur dans les points de paire pour le premier élément dans la multiset avec une clé qui est égale ou supérieure à la clé.

Effacer

Supprime un élément ou une plage d'éléments dans un multiset à partir de positions spécifiées ou supprime les éléments qui correspondent à une clé spécifiée.

find

Retourne un itérateur qui pointe vers le premier emplacement d'un élément dans un multiset qui a une clé égale à une clé spécifiée.

get_allocator

Retourne une copie de la allocator objet qui est utilisé pour construire le multiset.

Insérer

Insère un élément ou une plage d'éléments dans un multiset.

key_comp

Fournit un objet de fonction qui peut comparer deux clés de tri pour déterminer l'ordre relatif de deux éléments dans le multiset.

lower_bound

Retourne un itérateur vers le premier élément dans un multiset avec une clé qui est égale ou supérieure à une clé spécifiée.

max_size

Retourne la longueur maximale de la multiset.

rbegin

Retourne un itérateur qui pointe vers le premier élément dans une inversion multiset.

rend

Retourne un itérateur qui pointe vers l'emplacement suivant le dernier élément dans un texte inversé multiset.

taille

Renvoie le nombre d'éléments dans un multiset.

swap

Échange les éléments de deux multisets.

upper_bound

Retourne un itérateur vers le premier élément dans un multiset avec une clé qui est supérieure à une clé spécifiée.

value_comp

Récupère une copie de l'objet de comparaison qui est utilisé pour les valeurs d'élément de commande dans un multiset.

Configuration requise

En-tête : <set>

Espace de noms : std

Voir aussi

Référence

Sécurité des threads dans la bibliothèque C++ standard

Modèles Standard

Autres ressources

membres de multiensemble

<set> membres