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
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
Typedef pour la classe allocator de l'objet map. |
|
Typedef pour un itérateur bidirectionnel qui peut lire un élément const dans la classe map. |
|
Typedef pour un pointeur vers un élément const d'une classe map. |
|
Typedef pour une référence à un élément const stocké dans une classe map pour lire et effectuer des opérations const. |
|
Type qui fournit un itérateur bidirectionnel capable de lire n'importe quel élément const dans la classe map. |
|
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. |
|
Typedef pour un itérateur bidirectionnel qui permet de lire ou de modifier tout élément d'une classe map. |
|
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. |
|
Typedef pour la clé de tri stockée dans chaque élément de la classe map. |
|
Typedef pour les données stockées dans chaque élément d'une classe map. |
|
Typedef pour un pointeur vers un élément const d'une classe map. |
|
Typedef pour une référence à un élément stocké dans une classe map. |
|
Typedef pour un itérateur bidirectionnel qui permet de lire ou de modifier un élément d'une classe map inversée. |
|
Typedef entier non signé pour le nombre d'éléments d'une classe map. |
|
Typedef pour le type d'objet stocké comme élément dans une classe map. |
Fonctions membres
Recherche un élément avec une valeur de clé spécifiée. |
|
Retourne un itérateur qui pointe vers le premier élément d'une classe map. |
|
Retourne un itérateur const qui pointe vers le premier élément de la classe map. |
|
Retourne un itérateur const de type past-the-end. |
|
Efface tous les éléments d'une classe map. |
|
Retourne le nombre d'éléments dans une classe map dont la clé correspond à celle spécifiée dans un paramètre. |
|
Retourne un itérateur const qui pointe vers le premier élément d'une classe map inversée. |
|
Retourne un itérateur const qui pointe vers l'emplacement après le dernier élément dans une classe map inversée. |
|
Insère un élément construit sur place dans la classe map. |
|
Insère un élément construit sur place dans la classe map, avec un indicateur de positionnement. |
|
Retourne true si la classe map est vide. |
|
Retourne l'itérateur past-the-end. |
|
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. |
|
Supprime un élément ou une plage d'éléments dans une classe map depuis les emplacement spécifiés. |
|
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. |
|
Retourne une copie de l'objet allocator qui est utilisé pour construire la classe map. |
|
Insère un élément ou une plage d'éléments dans la classe map à un emplacement spécifié. |
|
Retourne une copie de l'objet de comparaison utilisé pour trier les clés dans une classe map. |
|
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. |
|
Retourne la longueur maximale de la classe map. |
|
Retourne un itérateur qui pointe vers le premier élément d'une classe map inversée. |
|
Retourne un itérateur qui pointe vers l'emplacement après le dernier élément dans une classe map inversée. |
|
Retourne le nombre d'éléments d'une classe map. |
|
Échange les éléments de deux classes map. |
|
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. |
|
Récupère une copie de l'objet de comparaison utilisé pour trier les valeurs d'éléments dans une classe map. |
Opérateurs
Insère un élément dans une classe map avec une valeur de clé spécifiée. |
|
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)