Partager via


map, classe

Utilisé pour le stockage et la récupération de données d'une collection dans laquelle chaque élément est une paire qui a à la fois une valeur de données et une clé de tri. La valeur de la clé est unique et est utilisée pour trier automatiquement les données.

La valeur d'un élément dans une classe map peut être modifiée directement. La valeur de clé est une constante non modifiable. Les valeurs de clés associées aux anciens éléments doivent être supprimées, et de nouvelles valeurs de clés doivent être insérées pour les nouveaux éléments.

template <
   class Key, 
   class Type, 
   class Traits = less<Key>, 
   class Allocator=allocator<pair <const Key, Type> > 
> class map;

Paramètres

  • Key
    Type de données clé à stocker dans la classe map.

  • Type
    Type de données d'élément à stocker dans la classe map.

  • Traits
    Type qui fournit un objet de fonction pouvant comparer deux valeurs d'éléments comme clés de tri afin de déterminer leur ordre relatif dans la classe map. Cet argument est facultatif et le prédicat binaire less<Key> est la valeur par défaut.

  • Allocator
    Type qui représente l'objet allocateur stocké qui contient des informations sur l'allocation et la désallocation de mémoire de la classe map. Cet argument est facultatif et sa valeur par défaut est allocator<pair <constKey*,* Type> >.

Notes

La classe map STL (Standard Template Library) est :

  • Un conteneur de taille variable qui récupère efficacement des valeurs d'éléments selon les valeurs de clés associées

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

  • Trié, car ses éléments sont classés par valeurs de clés selon une fonction de comparaison spécifiée

  • Unique, car chacun de ses éléments doit avoir une clé unique

  • Un conteneur associatif de paires, car ses valeurs de données d'éléments sont séparées de ses valeurs de clés

  • Une classe de modèle, car la fonctionnalité qu'elle fournit est générique et indépendante du type d'élément et du type de clé. Les types de données utilisés pour des éléments et des clés sont 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 map est un itérateur bidirectionnel, mais les fonctions membres de classe insert et map ont des versions qui prennent comme paramètres de modèle un itérateur d'entrée plus faible, dont les spécifications des fonctionnalités sont moindres par rapport à celles garanties par la classe des itérateurs bidirectionnels. Les différents concepts d'itérateurs sont liés par des améliorations de leurs fonctionnalités. Chaque concept d'itérateur possède son propre ensemble de spécifications, et les algorithmes qui fonctionnent avec lui doivent être limités par ces spécifications. Un itérateur d'entrée peut être déréférencé pour faire référence à un objet et peut être incrémenté à l'itérateur suivant de la séquence.

Nous vous recommandons de baser le choix du type de conteneur sur le type de recherche et d'insertion qui est requis par l'application. Les conteneurs associatifs sont optimisés pour les opérations de recherche, d'insertion et de suppression. Les fonctions membres qui prennent en charge explicitement ces opérations les exécutent en un temps qui est, au pire des cas, proportionnel au logarithme du nombre d'éléments dans le conteneur. L'insertion d'éléments ne rend aucun itérateur non valide. La suppression d'éléments rend uniquement non valides les itérateurs qui pointaient spécifiquement vers les éléments supprimés.

Nous vous recommandons de faire de la classe map le conteneur associatif de premier choix lorsque des conditions qui associent des valeurs avec des clés sont remplies par l'application. Un modèle pour ce type de structure est une liste triée de mots clés à occurrence unique avec des valeurs de chaîne associées qui fournissent des définitions. Si un mot a plusieurs définitions correctes afin que la clé ne soit pas unique, il convient d'utiliser une classe multimap comme conteneur. Si seule la liste de mots est stockée, il convient d'utiliser un ensemble comme conteneur. Si plusieurs occurrences de mots sont autorisées, il convient d'utiliser une classe multiset.

La classe map trie les éléments qu'elle contrôle en appelant un objet de fonction stocké de type key_compare. Cet objet stocké est une fonction de comparaison sollicitée en appelant la méthode key_comp. En général, deux éléments donnés sont comparés pour déterminer si l'un est inférieur à l'autre ou s'ils sont équivalents. Comme tous les éléments sont comparés, une séquence classée d'éléments non équivalents est créée.

Notes

La fonction de comparaison est un prédicat binaire qui induit un ordre faible strict dans le sens mathématique du terme.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 de false.Un tri appliqué à un ensemble est un ordre faible strict si le prédicat binaire est irréflexif, antisymétrique et transitif, et si l'équivalence est transitive, où deux objets x et y sont définis comme équivalents lorsque f(x,y)et f(y,x) sont false.Si la plus élevée des conditions d'égalité entre les clés remplace celle de l'équivalence, alors le tri devient total (dans le sens où tous les éléments sont classés les uns par rapport aux autres), et les clés correspondantes seront alors impossibles à différencier les unes des autres.

Membres

Constructeurs

map

Construit une liste de taille spécifique ou contenant des éléments de valeurs spécifiques, ou contenant un allocator spécifique ou comme copie d'une autre classe map.

Typedef

allocator_type

Typedef pour la classe allocator de l'objet map.

const_iterator

Typedef pour un itérateur bidirectionnel qui peut lire un élément const dans la classe map.

const_pointer

Typedef pour un pointeur vers un élément const d'une classe map.

const_reference

Typedef pour une référence à un élément const stocké dans une classe map pour lire et effectuer des opérations const.

const_reverse_iterator

Type qui fournit un itérateur bidirectionnel capable de lire n'importe quel élément const dans la classe map.

difference_type

Typedef entier signé pour le nombre d'éléments d'une classe map comprise dans une plage d'éléments pointés par des itérateurs.

iterator

Typedef pour un itérateur bidirectionnel qui permet de lire ou de modifier tout élément d'une classe map.

key_compare

Typedef pour un objet de fonction qui peut comparer deux clés de tri pour déterminer l'ordre relatif de deux éléments d'une classe map.

key_type

Typedef pour la clé de tri stockée dans chaque élément de la classe map.

mapped_type

Typedef pour les données stockées dans chaque élément d'une classe map.

pointer

Typedef pour un pointeur vers un élément const d'une classe map.

référence

Typedef pour une référence à un élément stocké dans une classe map.

reverse_iterator

Typedef pour un itérateur bidirectionnel qui permet de lire ou de modifier un élément d'une classe map inversée.

type_taille

Typedef entier non signé pour le nombre d'éléments d'une classe map.

value_type

Typedef pour le type d'objet stocké comme élément dans une classe map.

Fonctions membres

at

Recherche un élément avec une valeur de clé spécifiée.

begin

Retourne un itérateur qui pointe vers le premier élément d'une classe map.

cbegin

Retourne un itérateur const qui pointe vers le premier élément de la classe map.

cend

Retourne un itérateur const de type past-the-end.

clear

Efface tous les éléments d'une classe map.

count

Retourne le nombre d'éléments dans une classe map dont la clé correspond à celle spécifiée dans un paramètre.

crbegin

Retourne un itérateur const qui pointe vers le premier élément d'une classe map inversée.

crend

Retourne un itérateur const qui pointe vers l'emplacement après le dernier élément dans une classe map inversée.

emplace

Insère un élément construit sur place dans la classe map.

emplace_hint

Insère un élément construit sur place dans la classe map, avec un indicateur de positionnement.

empty

Retourne true si la classe map est vide.

end

Retourne l'itérateur past-the-end.

equal_range

Retourne une paire d'itérateurs. Le premier itérateur de la paire pointe vers le premier élément d'un map avec une clé qui est supérieure à celle spécifiée. Le deuxième itérateur de la paire pointe vers le premier élément du map avec une clé dont la valeur est supérieure ou égale à la clé spécifiée.

erase

Supprime un élément ou une plage d'éléments dans une classe map depuis les emplacement spécifiés.

find

Retourne un itérateur qui indique l'emplacement d'un élément dans une classe map qui a une clé égale à celle spécifiée.

get_allocator

Retourne une copie de l'objet allocator qui est utilisé pour construire la classe map.

insert

Insère un élément ou une plage d'éléments dans la classe map à un emplacement spécifié.

key_comp

Retourne une copie de l'objet de comparaison utilisé pour trier les clés dans une classe map.

lower_bound

Retourne un itérateur au premier élément d'une classe map qui a une valeur de clé supérieure ou égale à celle d'une clé spécifiée.

max_size

Retourne la longueur maximale de la classe map.

rbegin

Retourne un itérateur qui pointe vers le premier élément d'une classe map inversée.

rend

Retourne un itérateur qui pointe vers l'emplacement après le dernier élément dans une classe map inversée.

size

Retourne le nombre d'éléments d'une classe map.

échange

Échange les éléments de deux classes map.

upper_bound

Retourne un itérateur au premier élément d'une classe map qui a une valeur de clé qui est supérieure ou égale à celle d'une clé spécifiée.

value_comp

Récupère une copie de l'objet de comparaison utilisé pour trier les valeurs d'éléments dans une classe map.

Opérateurs

operator[]

Insère un élément dans une classe map avec une valeur de clé spécifiée.

operator=

Remplace les éléments d'une classe map par une copie d'une autre classe map.

Configuration requise

En-tête : <map>

Espace de noms : std

Voir aussi

Référence

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

Bibliothèque STL (Standard Template Library)

Concepts

Conteneurs

Autres ressources

<map> membres