Partager via


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

1ka6hya8.collapse_all(fr-fr,VS.110).gifConstructeurs

mappage multiple

Construit multimap qui est vide ou qui est une copie de l'ensemble ou une partie d'un autre multimap.

1ka6hya8.collapse_all(fr-fr,VS.110).gifTypedef

allocator_type

Un type qui représente la classe d' allocator pour l'objet d' multimap .

const_iterator

Un type qui fournit un itérateur bidirectionnel qui peut lire un élément d' const dans multimap.

const_pointer

Un type qui fournit un pointeur vers un élément de const dans multimap.

const_reference

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 .

const_reverse_iterator

Un type qui fournit un itérateur bidirectionnel qui peut lire un élément d' const dans multimap.

difference_type

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.

itérateur

Un type qui fournit la différence entre deux itérateurs qui font référence aux éléments dans le même multimap.

key_compare

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.

key_type

Un type qui décrit l'objet clé de tri qui constitue chaque élément d' multimap.

mapped_type

Un type qui représente le type de données stockées dans multimap.

pointer

Un type qui fournit un pointeur vers un élément de const dans multimap.

référence

Un type qui fournit une référence à un élément stocker dans multimap.

reverse_iterator

Un type qui fournit un itérateur bidirectionnel qui peut lire ou modifier un élément dans multimapinversé.

size_type

Un type d'entier non signé qui fournit un pointeur vers un élément de const dans multimap.

Type valeur

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.

1ka6hya8.collapse_all(fr-fr,VS.110).gifFonctions membres

begin

Retourne un itérateur adressant le premier élément de multimap.

multimap::cbegin

Retourne un itérateur const adressant le premier élément de multimap.

multimap::cend

Retourne un itérateur const qui traite l'emplacement réussissant le dernier élément de multimap.

clear

Efface tous les éléments d' multimap.

count

Retourne le nombre d'éléments dans multimap dont la clé correspond à une clé paramètre- spécifiée.

multimap::crbegin

Retourne un itérateur const adressant le premier élément de multimapinversé.

multimap::crend

Retourne un itérateur const qui traite l'emplacement réussissant le dernier élément de multimapinversé.

multimap::emplace

Insère un élément construit en place dans multimap.

multimap::emplace_hint

Insère un élément construit en place dans multimap, avec un indicateur de positionnement

empty

Teste si multimap est vide.

end

Retourne un itérateur qui traite l'emplacement réussissant le dernier élément de multimap.

equal_range

Recherche la plage d'éléments où la clé de l'élément correspond à une valeur spécifiée.

effacement

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.

find

Retourne un itérateur adressant le premier emplacement d'un élément dans multimap qui a une clé équivalente à une clé spécifiée.

get_allocator

Retourne une copie de l'objet d' allocator utilisé pour construire multimap.

insertion

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

key_comp

Extrait une copie de l'objet de comparaison utilisé à des clés de commande dans multimap.

lower_bound

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.

max_size

Retourne la longueur maximale d' multimap.

rbegin

Retourne un itérateur adressant le premier élément de multimapinversé.

rend

Retourne un itérateur qui traite l'emplacement réussissant le dernier élément de multimapinversé.

taille

Retourne le nombre d'éléments dans multimap.

échange

Permute les éléments de deux multimapS.

upper_bound

Retourne un itérateur au premier élément de multimap qui avec une clé qui est supérieure à une clé spécifiée.

value_comp

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.

1ka6hya8.collapse_all(fr-fr,VS.110).gifOpérateurs

multimap::operator=

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

Modèles Standard

Autres ressources

membres de mappage multiple

<map> membres

Fichiers d'en-tête