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.
Constructeurs
Construit un multiset qui est vide ou qui est une copie de tous les ou une partie d'un multiset. |
Typedef
Un typedef pour le allocator de classe pour le multiset objet. |
|
Un typedef pour un itérateur bidirectionnel capable de lire un const élément dans le multiset. |
|
Un typedef pour un pointeur vers un const élément dans un multiset. |
|
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. |
|
Un typedef pour un itérateur bidirectionnel qui peut lire aucun const élément dans le multiset. |
|
Entier signé typedef pour le nombre d'éléments d'un multiset dans une plage entre les éléments indiqué par les itérateurs. |
|
Un typedef pour un itérateur bidirectionnel qui peut lire ou modifier n'importe quel élément dans une multiset. |
|
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. |
|
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. |
|
Un typedef pour un pointeur vers un élément dans un multiset. |
|
Un typedef pour une référence à un élément stocké dans un multiset. |
|
Un typedef pour un itérateur bidirectionnel qui peut lire ou modifier un élément dans une inversion multiset. |
|
Un type d'entier non signé qui peut représenter le nombre d'éléments dans un multiset. |
|
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. |
|
Un typedef qui décrit un objet stocké en tant qu'élément comme un multiset dans sa capacité en tant que valeur. |
Méthodes
Retourne un itérateur qui pointe vers le premier élément dans la multiset. |
|
Efface tous les éléments d'un multiset. |
|
Renvoie le nombre d'éléments dans un multiset dont la clé correspond à la clé spécifiée en tant que paramètre. |
|
Teste si une multiset est vide. |
|
Retourne un itérateur qui pointe vers l'emplacement après le dernier élément dans un multiset. |
|
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é. |
|
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. |
|
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. |
|
Retourne une copie de la allocator objet qui est utilisé pour construire le multiset. |
|
Insère un élément ou une plage d'éléments dans un multiset. |
|
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. |
|
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. |
|
Retourne la longueur maximale de la multiset. |
|
Retourne un itérateur qui pointe vers le premier élément dans une inversion multiset. |
|
Retourne un itérateur qui pointe vers l'emplacement suivant le dernier élément dans un texte inversé multiset. |
|
Renvoie le nombre d'éléments dans un multiset. |
|
Échange les éléments de deux multisets. |
|
Retourne un itérateur vers le premier élément dans un multiset avec une clé qui est supérieure à une clé spécifiée. |
|
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