multimap Class
La classe de mappage multiple de modèles Standard est utilisée pour le stockage et la récupération des données d'une collection dans laquelle chaque élément est une paire qui a une valeur de données et une clé de tri.La valeur de la clé n'a pas besoin d'être unique et est utilisée pour trier les données automatiquement.La valeur d'un élément dans un mappage multiple, mais pas sa valeur de clé associée, peut être modifié directement.À la place, les valeurs de clés associées aux éléments anciens doivent être supprimées et de nouvelles valeurs de clés être associées à de nouveaux éléments insérés.
template <
class Key,
class Type,
class Traits=less<Key>,
class Allocator=allocator<pair <const Key, Type> >
>
class multimap
Paramètres
Clé
Le type de données clés à stocker dans le mappage multiple.Tapez
Le type de données d'élément à stocker dans le mappage multiple.Traits
Le type qui fournit un objet de fonction qui peut comparer deux valeurs d'élément comme clés de tri pour déterminer leur commande relative dans le mappage multiple.L'attribut binaire less*<Key>* est la valeur par défaut.Allocator
Le type qui représente l'objet d'allocation stocké qui encapsule des informations sur l'allocation et de la désallocation de la carte de la mémoire.Cet argument est facultatif et la valeur par défaut est allocator*<*pair *<*const clé , Type> >.
Notes
La classe de mappage multiple STL est
Un conteneur associatif, qui un conteneur variable de taille qui prend en charge la recherche efficace des valeurs d'élément selon une valeur de clé associée.
Réversible, car il fournit des itérateurs bidirectionnelles pour accéder à ses éléments.
Trié, car ses éléments sont triés par les valeurs de clés dans le conteneur conformément à une fonction de comparaison donnée.
Multiple, car ses éléments n'ont pas besoin d'avoir des clés uniques, afin qu'une valeur de clé peut avoir plusieurs valeurs de données d'élément qui lui est associée.
Un conteneur associatif de paires, car ses valeurs de données d'élément sont séparées de ses valeurs de clés.
Une classe de modèle, car les fonctionnalités qu'elle fournit est générique et par conséquent indépendant du type de données spécifique contenu comme éléments ou clés.Les types de données à utiliser pour les éléments et les clés correspondent à la place spécifiés comme paramètres dans le modèle de classe avec la fonction de comparaison et l'allocateur.
L'itérateur fourni par la classe de mappage est un itérateur bidirectionnel, mais le membre de classe s'exécute insertion et mappage multiple ont des versions qui prennent comme paramètre de modèle un itérateur d'entrée plus faible, dont les spécifications de fonctionnalités sont plus minimales que celles garanties par la classe les itérateurs bidirectionnelles.Les différents concepts d'itérateur forment une famille associée par des améliorations dans leurs fonctionnalités.Chaque concept d'itérateur possède son propre ensemble de spécifications et les algorithmes qui fonctionnent avec elles la limite de nécessité les hypothèses aux spécifications fournies par ce type d'itérateur.Il peut supposer 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é à l'itérateur dans la séquence.C'est un jeu minimal de fonctionnalité, mais il est asse'à pouvoir parler clairement à propos d'une plage des itérateurs [_First, _Last) dans le contexte des fonctions membres de la classe.
Le choix du type de conteneur doit être basé généralement sur le type de rechercher et d'insérer requis par l'application.Les conteneurs sont associatifs optimisés pour les opérations de recherche, de l'insertion et de suppression.Les fonctions membres qui prennent en charge explicitement ces opérations sont efficaces, les exécutant dans une heure qui est en moyenne proportionnel au logarithme du nombre d'éléments dans le conteneur.Insertion des éléments n'invalide pas d'itérateur, et supprime des éléments invalide uniquement les itérateurs qui avaient spécifiquement pointe vers des éléments supprimés.
Le mappage multiple doit être le conteneur du tableau associatif lorsque les conditions associant les valeurs avec leurs clés sont satisfaites par l'application.Un modèle pour ce type de structure est une liste triée de mots clés avec des valeurs de chaîne associées fournissant par exemple des définitions, où les mots toujours n'ont pas été définis uniquement.Si, au lieu de cela, les mots clés ont été définis uniquement afin que les clés aient été uniques, une carte est le conteneur du tableau.Si, en revanche, juste la liste de mots ont été stockées, un jeu est le conteneur approprié.Si vous permettait de plusieurs occurrences des mots, un multiensemble est la structure appropriée du conteneur.
Le mappage de plusieurs classes la séquence qu'il contrôle en appelant un objet stocké de fonction de type key_compare.Cet objet stocké est une fonction de comparaison qui est accessible en appelant la fonction membre key_comp.En général les éléments doivent être simplement moins que comparables pour générer cette commande : afin que, avec deux éléments quelconques, il puisse déterminer l'un ou l'autre qu'ils sont équivalents (dans le sens que ni l'un ni l'autre n'est inférieure à l'autre) ou qu'il est inférieure à l'autre.Cela provoque le classement entre les éléments d'inégalité.En plus de la note technique, la fonction de comparaison est un attribut binaire qui induit le classement faible strict dans le sens mathématiques standard.Un attribut fbinaire (*x, y)*est un objet de fonction qui a deux objets d'argument x et y et une valeur de retour de la valeur true ou false.Le classement imposé à un ensemble est faible l'ordre strict si l'attribut binaire est irréflexif, antisymétrique, et transitif et si l'équivalence est transitive, où deux objets X et y sont définis pour être équivalents lorsque les deux f(*x, y)*et f(*x, y)*sont fictifs.Si l'état plus fort de l'égalité entre les clés remplace celui de l'équivalence, le classement est total (dans le sens que tous les éléments sont triés par rapport à l'autre) et les clés correspondance seront imperceptibles entre eux.
Membres
Constructeurs
Construit multimap qui est vide ou qui est une copie de l'ensemble ou une partie d'un autre multimap. |
Typedef
Un type qui représente la classe d' allocator pour l'objet d' multimap . |
|
Un type qui fournit un itérateur bidirectionnel qui peut lire un élément d' const dans multimap. |
|
Un type qui fournit un pointeur vers un élément de const dans multimap. |
|
Un type qui fournit une référence à un élément d' const stocker dans multimap pour lire et effectuer des opérations d' const . |
|
Un type qui fournit un itérateur bidirectionnel qui peut lire un élément d' const dans multimap. |
|
Un type d'entier signé qui peut être utilisé pour représenter le nombre d'éléments d' multimap dans une plage entre les éléments a globale pointe vers les itérateurs. |
|
Un type qui fournit la différence entre deux itérateurs qui font référence aux éléments dans le même multimap. |
|
Un type qui fournit un objet de fonction qui peut comparer deux clés de tri pour déterminer la commande relative de deux éléments dans multimap. |
|
Un type qui décrit l'objet clé de tri qui constitue chaque élément d' multimap. |
|
Un type qui représente le type de données stockées dans multimap. |
|
Un type qui fournit un pointeur vers un élément de const dans multimap. |
|
Un type qui fournit une référence à un élément stocker dans multimap. |
|
Un type qui fournit un itérateur bidirectionnel qui peut lire ou modifier un élément dans multimapinversé. |
|
Un type d'entier non signé qui fournit un pointeur vers un élément de const dans multimap. |
|
Un type qui fournit un objet de fonction qui peut comparer deux éléments comme clés de tri pour déterminer leur commande relative dans multimap. |
Fonctions membres
Retourne un itérateur adressant le premier élément de multimap. |
|
Retourne un itérateur const adressant le premier élément de multimap. |
|
Retourne un itérateur const qui traite l'emplacement réussissant le dernier élément de multimap. |
|
Efface tous les éléments d' multimap. |
|
Retourne le nombre d'éléments dans multimap dont la clé correspond à une clé paramètre- spécifiée. |
|
Retourne un itérateur const adressant le premier élément de multimapinversé. |
|
Retourne un itérateur const qui traite l'emplacement réussissant le dernier élément de multimapinversé. |
|
Insère un élément construit en place dans multimap. |
|
Insère un élément construit en place dans multimap, avec un indicateur de positionnement |
|
Teste si multimap est vide. |
|
Retourne un itérateur qui traite l'emplacement réussissant le dernier élément de multimap. |
|
Recherche la plage d'éléments où la clé de l'élément correspond à une valeur spécifiée. |
|
Supprime un élément ou une plage d'éléments dans multimap des positions spécifiées ou supprime des éléments qui correspondent à une clé spécifiée. |
|
Retourne un itérateur adressant le premier emplacement d'un élément dans multimap qui a une clé équivalente à une clé spécifiée. |
|
Retourne une copie de l'objet d' allocator utilisé pour construire multimap. |
|
Insère un élément ou une plage d'éléments dans multimap. |
|
Extrait une copie de l'objet de comparaison utilisé à des clés de commande dans multimap. |
|
Retourne un itérateur au premier élément de multimap qui avec une clé à laquelle est égal ou supérieur une clé spécifiée. |
|
Retourne la longueur maximale d' multimap. |
|
Retourne un itérateur adressant le premier élément de multimapinversé. |
|
Retourne un itérateur qui traite l'emplacement réussissant le dernier élément de multimapinversé. |
|
Retourne le nombre d'éléments dans multimap. |
|
Permute les éléments de deux multimapS. |
|
Retourne un itérateur au premier élément de multimap qui avec une clé qui est supérieure à une clé spécifiée. |
|
La fonction membre retourne un objet de fonction qui détermine l'ordre des éléments dans multimap en comparant les valeurs de clés. |
Opérateurs
Remplace les éléments d' multimap par une copie d'un autre multimap. |
Configuration requise
En-tête : <map>
L'espace de noms : DST
(key, value) les paires sont stockées dans un mappage multiple en tant qu'objets de type pair.La classe de paires requiert l'en-tête <utility>, qui est inclus automatiquement par <map>.
Voir aussi
Référence
Sécurité des threads dans la bibliothèque C++ standard