English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ Tutoriel de base

C++ Contrôle de flux

C++ Fonction

C++ Tableau & Chaîne

C++ Structure des données

C++ Classe & Objet

C++ Pointeurs

C++ Héritage

C++ Tutoriel STL

C++ Manuel de référence

C++ Méthodes d'utilisation et exemples de Map

Map est C ++ Une partie de STL (bibliothèque de templates standard). Map est un conteneur associatif de paires de clés et de valeurs triées, où chaque clé est unique, peut être insérée ou supprimée, mais ne peut pas être modifiée. Cependant, la valeur associée à la clé peut être modifiée.

Par exemple :Un conteneur de map d'employé, où l'ID de l'employé est la clé et le nom est la valeur, peut être représenté ainsi :

CléValeur
101Nikita
102Robin
103Deep
104John

Syntaxe

template < class Key,</                     //map::key_type
           class T,</                 //map::mapped_type
           class Compare = less,</         //map::key_compare
           class Alloc = allocator<pair>    //map::allocator_type
           > class map;

paramètres

key :Le type de données des clés à stocker dans la map.

type :Le type de données des valeurs à stocker dans la map.

compare :Une classe comparant deux paramètres du type booléen, et renvoyant une valeur. Ce paramètre est optionnel, le binaire predicateur less <" key"> est la valeur par défaut.

alloc :Le type de l'objet distributeur. Ce paramètre est optionnel, la valeur par défaut est le distributeur.

Création de map

Il est facile de créer une map en utilisant les instructions suivantes :

typedef pair<const Key, T> value_type;

Les instructions suivantes seront utilisées pour créer une clé de typede type Keyetvaleur valuede typede type value_typede la map.Un point important est que les clés et les valeurs associées de la map sont toujours insérées en paires, vous ne pouvez pas insérer uniquement les clés ou uniquement les valeurs dans la map.

Instance1

#include <string.h>  
#include <iostream>  
#include <map>  
#include <utility>  
using namespace std;  
int main()
{
   mapEmployees;
   // 1) en utilisant les indices d'array pour affecter
   Employees[101] = "Nikita";
   Employees[105] = "John";
   Employees[103] = "Dolly";
   Employees[104] = "Deep";
   Employees[102] = "Aman";
   cout << "Employees[104] = << Employees[104] << endl << endl;
   cout << "Taille de la Map: " << Employees.size() << endl;
   cout << endl << "Ordre naturel:" << endl;
   for (map::iterator ii = Employees.begin(); ii != Employees.end(); ++ii)
   {
       cout << (*ii).first << " : " << (*ii).second << endl;
   }
   cout << endl << "Ordre inverse:" << endl;
   for( map::reverse_iterator ii=Employees.rbegin(); ii!=Employees.rend(); ++ii)
   {
       cout << (*ii).first << " : " << (*ii).second << endl;
   }
}

Sortie :

Employees[104=Deep
Taille de Map: 5
Ordre naturel:
101: Nikita
102: Aman
103: Dolly
104: Deep
105: John
Ordre inverse:
105: John
104: Deep
103: Dolly
102: Aman
101: Nikita

Fonctions membres

Voici la liste de toutes les fonctions membres de map :

Constructeurs/Destructeurs

FonctionDescription
constructorsConstructeurs de map
destructorsDestructeurs de map
operator=Copie les éléments de la map dans un autre conteneur de map.

Itérateurs

FonctionDescription
beginRenvoie un itérateur vers le premier élément de la map.
cbeginRenvoie un itérateur constant vers le premier élément de la map.
endRenvoie un itérateur vers la fin.
cendRenvoie un itérateur constant vers la fin.
rbeginRenvoie un itérateur vers la fin.
rendRenvoie un itérateur vers le début.
crbeginRenvoie un itérateur constant vers la fin.
crendRenvoie un itérateur constant vers le début.

Capacité

FonctionDescription
emptyRenvoie true si la map est vide.
sizeRenvoie le nombre d'éléments dans la map.
max_sizeRenvoie la capacité maximale de la map.

Accès aux éléments

FonctionDescription
operator[]Récupère l'élément avec la clé donnée.
atRécupère l'élément avec la clé donnée.

Modificateurs

FonctionDescription
insertInsère un élément dans la map.
eraseEfface les éléments de la map.
swapÉchange le contenu de la map.
clearSupprime tous les éléments de la map.
emplaceConstruit un nouvel élément et l'insère dans la map.
emplace_hintConstruit un nouvel élément à partir d'un提示 et l'insère dans la map.

Observateurs

FonctionDescription
key_compRenvoie une copie de l'objet de comparaison de la clé.
value_compRenvoie une copie de l'objet de comparaison de la valeur.

Mode d'opération

FonctionDescription
findRecherche d'éléments avec la clé donnée.
countObtient le nombre d'éléments correspondant à la clé donnée.
lower_boundRenvoie la borne inférieure de l'itérateur.
upper_boundRenvoie un itérateur à la borne supérieure.
equal_rangeRenvoie l'intervalle d'éléments correspondant à la clé donnée.

分配器 allocator

FonctionDescription
get_allocatorRetourner l'objet分配器 allocator utilisé pour construire la map.

Fonction redéfinie non membre

FonctionDescription
operator==Vérifier si deux maps sont égales.
operator! MessageLookupVérifier si deux maps sont égales.
operator<Vérifier si la première map est inférieure aux autres maps.
operator<=Vérifier si la première map est inférieure ou égale aux autres maps.
operator>Vérifier si la première map est supérieure aux autres maps.
operator>=Vérifier si la première map est supérieure aux autres maps.
swap()Échanger les éléments de deux maps.