Partager via


multiset (STL/CLR)

La classe de modèle décrit un objet qui contrôle une séquence de la longueur variée d'éléments qui a accès bidirectionnel.Vous utilisez le conteneur multiset pour gérer une séquence d'éléments comme (presque) avez équilibré l'arborescence ordonnée de nœuds, chaque un élément d'inscription.

Dans la description ci-après, GValue est identique qu' GKey, qui est ensuite le même qu' Key à moins que ce dernier soit un type référence, auquel cas c'est Key^.

template<typename Key>
    ref class multiset
        :   public
        System::ICloneable,
        System::Collections::IEnumerable,
        System::Collections::ICollection,
        System::Collections::Generic::IEnumerable<GValue>,
        System::Collections::Generic::ICollection<GValue>,
        System::Collections::Generic::IList<GValue>,
        Microsoft::VisualC::StlClr::ITree<Gkey, GValue>
    { ..... };

Paramètres

  • Clé
    Type du composant clé d'un élément dans la séquence contrôlée.

Membres

Définition de type

Description

multiset::const_iterator (STL/CLR)

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

multiset::const_reference (STL/CLR)

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

multiset::const_reverse_iterator (STL/CLR)

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

multiset::difference_type (STL/CLR)

Le type de distance (éventuellement signé) entre deux éléments.

multiset::generic_container (STL/CLR)

Le type de l'interface générique pour le conteneur.

multiset::generic_iterator (STL/CLR)

Le type d'un itérateur pour l'interface générique pour le conteneur.

multiset::generic_reverse_iterator (STL/CLR)

Le type d'un itérateur inverse pour l'interface générique pour le conteneur.

multiset::generic_value (STL/CLR)

Le type d'un élément de l'interface générique pour le conteneur.

multiset::iterator (STL/CLR)

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

multiset::key_compare (STL/CLR)

Le délégué classement pour deux clés.

multiset::key_type (STL/CLR)

Le type d'une clé de classement.

multiset::reference (STL/CLR)

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

multiset::reverse_iterator (STL/CLR)

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

multiset::size_type (STL/CLR)

Le type de distance (non négative) d'un entre deux éléments.

multiset::value_compare (STL/CLR)

Le délégué classement pour deux valeurs d'élément.

multiset::value_type (STL/CLR)

Le type d'un élément.

Fonction membre

Description

multiset::begin (STL/CLR)

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

multiset::clear (STL/CLR)

Supprime tous les éléments.

multiset::count (STL/CLR)

Compte des éléments qui correspondent à une clé spécifiée.

multiset::empty (STL/CLR)

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

multiset::end (STL/CLR)

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

multiset::equal_range (STL/CLR)

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

multiset::erase (STL/CLR)

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

multiset::find (STL/CLR)

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

multiset::insert (STL/CLR)

Ajoute des éléments.

multiset::key_comp (STL/CLR)

Copie le délégué classement pour deux clés.

multiset::lower_bound (STL/CLR)

Recherche le début de la plage qui correspond à une clé spécifiée.

multiset::make_value (STL/CLR)

Construit un objet valeur.

multiset::multiset (STL/CLR)

Construit un objet.

multiset::rbegin (STL/CLR)

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

multiset::rend (STL/CLR)

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

multiset::size (STL/CLR)

Compte le nombre d'éléments.

multiset::swap (STL/CLR)

Échange le contenu de deux conteneurs.

multiset::to_array (STL/CLR)

Copie la séquence contrôlée à un nouveau tableau.

multiset::upper_bound (STL/CLR)

Fin de recherche de la plage qui correspond à une clé spécifiée.

multiset::value_comp (STL/CLR)

Copie le délégué classement pour deux valeurs d'élément.

Opérateur

Description

multiset::operator= (STL/CLR)

Remplace la séquence contrôlée.

operator!= (multiset) (STL/CLR)

Détermine si un objet d' multiset n'est pas égal à un autre objet d' multiset .

operator< (multiset) (STL/CLR)

Détermine si un objet d' multiset est inférieure un autre objet d' multiset .

operator<= (multiset) (STL/CLR)

Détermine si un objet d' multiset est inférieur ou égal à un autre objet d' multiset .

operator== (multiset) (STL/CLR)

Détermine si un objet d' multiset équivaut à un autre objet d' multiset .

operator> (multiset) (STL/CLR)

Détermine si un objet d' multiset est supérieur à un autre objet d' multiset .

operator>= (multiset) (STL/CLR)

Détermine si un objet d' multiset est supérieure ou égale à un autre objet d' multiset .

Interfaces

Interface

Description

ICloneable

Dupliquez un objet.

IEnumerable

Séquence de parcourir les éléments.

ICollection

Maintenez le groupe d'éléments.

IEnumerable<T>

Séquence par des éléments typés.

ICollection<T>

Maintenez le groupe d'éléments typés.

ITree<Clé, value>

Maintenez le conteneur générique.

Notes

L'objet alloue et libère le stockage pour la séquence qu'il contrôle comme des nœuds individuels.Il insère des éléments dans un (presque) n'a jamais équilibré l'arborescence qu'il contient classée en modifiant les liens entre les nœuds, en copiant le contenu d'un nœud à un autre.Cela signifie que vous pouvez insérer et supprimer des éléments librement sans éléments restants inquiétants.

L'objet classe la séquence qu'il contrôle en appelant un objet délégué stocké de type multiset::key_compare (STL/CLR).Vous pouvez spécifier l'objet délégué stocké lorsque vous construisez le multiensemble ; si vous ne spécifiez pas d'objet délégué, la valeur par défaut est la comparaison operator<(key_type, key_type).Vous accédez à cet objet stocké en appelant la fonction membre multiset::key_comp (STL/CLR)().

Un tel objet délégué doit appliquer le classement faible strict aux clés du type multiset::key_type (STL/CLR).Cela signifie, parce que deux clés d' X et Y:

key_comp()(X, Y) retourne le même résultat boolean à chaque appel.

Si key_comp()(X, Y) condition est vraie, key_comp()(Y, X) doit être false.

Si key_comp()(X, Y) condition est vraie, X est appelé dimensionné avant Y.

Si !key_comp()(X, Y) && !key_comp()(Y, X) condition est vraie, on dit qu' X et Y ont le classement équivalent.

Pour tout élément X qui précède Y dans la séquence contrôlée, key_comp()(Y, X) est false.(Pour l'objet délégué par défaut, les clés ne font baisser jamais dans une valeur.) Contrairement à la classe de modèle set (STL/CLR), un objet de classe de modèle multiset ne nécessite pas que les clés pour tous les éléments sont uniques.(Deux clés ou plusieurs peuvent avoir le classement équivalent.)

Chaque élément sert d'ey 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 proportionnelles au logarithme du nombre d'éléments dans la séquence (temps logarithmique).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é.

Un multiensemble prend en charge des itérateurs bidirectionnelles, ce qui signifie que vous pouvez exécuter pas aux éléments adjacents dotés d'un itérateur qui indique un élément dans la séquence contrôlée.Un nœud principal particulier correspond à l'itérateur retourné par multiset::end (STL/CLR)().Vous pouvez décrémenter cet itérateur pour atteindre le dernier élément de la séquence contrôlée, le cas échéant.Vous pouvez incrémenter un itérateur de multiensemble pour atteindre le nœud principal, et il comparera ensuite égale à end().Mais vous ne pouvez pas déréférencement l'itérateur retourné par end().

Notez que vous ne pouvez pas faire référence à un élément de multiensemble directement donné sa position numérique -- cette opération nécessite un itérateurs d'accès aléatoire.

Un itérateur de multiensemble enregistre un handle vers son nœud connexe de multiensemble, qui enregistre ensuite un handle à son conteneur associé.Vous pouvez utiliser des itérateurs uniquement avec leurs objets conteneurs associés.Un itérateur de multiensemble reste valide tant que son nœud connexe de multiensemble être associé à un certain multiensemble.De plus, un itérateur valide est dereferencable -- vous pouvez l'utiliser pour accéder ou modifier sa valeur d'élément qu'il indique -- en sachant qu'il ne soit pas égal à end().

Effaçant ou suppression d'un élément appelle le destructeur de sa valeur stockée.Détruire le conteneur efface tous les éléments.Ainsi, un conteneur dont le type d'élément est une classe de référence garantit qu'élément ne survit pas au conteneur.La notez, cependant, un conteneur de handles fait not destroy ses éléments.

Configuration requise

en-tête :<cliext/set>

Cliext del'espace de noms :

Voir aussi

Référence

hash_map (STL/CLR)

hash_multiset (STL/CLR)

hash_multiset (STL/CLR)

hash_set (STL/CLR)

map (STL/CLR)

multiset (STL/CLR)

set (STL/CLR)

Autres ressources

Référence de bibliothèque STL/CLR