Les cartes font partie du C++ STL (Standard Template Library). Les cartes sont des conteneurs associatifs qui stockent une paire clé-valeur triée, dans laquelle chaque clé est unique et peut être insérée ou supprimée mais ne peut pas être modifiée. Les valeurs associées aux clés peuvent être modifiées.
Par exemple: Une carte des employés où l'ID de l'employé est la clé et le nom est la valeur peut être représentée comme :
Clés | Valeurs |
---|---|
101 | Nikita |
102 | Robin |
103 | Profond |
104 | John |
Syntaxe
template <class key, map::key_type class t, map::mapped_type compare="less," map::key_compare alloc="allocator<pair"> // map::allocator_type > class map; </class>
Paramètre
clé: Type de données clés à stocker dans la carte.
taper: Type de données de valeur à stocker dans la carte.
comparer: Une classe de comparaison qui prend deux arguments du même type bool et renvoie une valeur. Cet argument est facultatif et le prédicat binaire less est la valeur par défaut.
allouer : Type de l’objet allocateur. Cet argument est facultatif et la valeur par défaut est allocator .
Création d'une carte
Les cartes peuvent facilement être créées à l'aide de l'instruction suivante :
typedef pair value_type;
Le formulaire ci-dessus sera utilisé pour créer une carte avec une clé de type Type de clé et valeur du type type de valeur. Une chose importante est que la clé d'une carte et les valeurs correspondantes sont toujours insérées par paire, vous ne pouvez pas insérer uniquement la clé ou simplement une valeur dans une carte.
Exemple 1
#include #include #include #include using namespace std; int main() { map Employees; // 1) Assignment using array index notation Employees[101] = 'Nikita'; Employees[105] = 'John'; Employees[103] = 'Dolly'; Employees[104] = 'Deep'; Employees[102] = 'Aman'; cout << 'Employees[104]=' << Employees[104] << endl << endl; cout << 'Map size: ' << Employees.size() << endl; cout << endl << 'Natural Order:' << endl; for( map::iterator ii=Employees.begin(); ii!=Employees.end(); ++ii) { cout << (*ii).first << ': ' << (*ii).second << endl; } cout << endl << 'Reverse Order:' << endl; for( map::reverse_iterator ii=Employees.rbegin(); ii!=Employees.rend(); ++ii) { cout << (*ii).first << ': ' << (*ii).second << endl; } }
Sortir:
Employees[104]=Deep Map size: 5 Natural Order: 101: Nikita 102: Aman 103: Dolly 104: Deep 105: John Reverse Order: 105: John 104: Deep 103: Dolly 102: Aman 101: Nikita
Fonctions des membres
Vous trouverez ci-dessous la liste de toutes les fonctions membres de map :
Constructeur/Destructeur
Les fonctions | Description |
---|---|
constructeurs | Construire une carte |
destroyers | Destructeur de carte |
opérateur= | Copiez des éléments de la carte sur une autre carte. |
Itérateurs
Les fonctions | Description |
---|---|
commencer | Renvoie un itérateur pointant vers le premier élément de la carte. |
ccommencer | Renvoie un itérateur const pointant vers le premier élément de la carte. |
fin | Renvoie un itérateur pointant vers la fin passée. |
quelques | Renvoie un itérateur constant pointant vers la fin passée. |
commencer | Renvoie un itérateur inverse pointant vers la fin. |
rend | Renvoie un itérateur inverse pointant vers le début. |
crcommencer | Renvoie un itérateur inverse constant pointant vers la fin. |
croire | Renvoie un itérateur inverse constant pointant vers le début. |
Capacité
Les fonctions | Description |
---|---|
vide | Renvoie vrai si la carte est vide. |
taille | Renvoie le nombre d'éléments dans la carte. |
taille max | Renvoie la taille maximale de la carte. |
Accès aux éléments
Les fonctions | Description |
---|---|
opérateur[] | Récupère l'élément avec la clé donnée. |
à | Récupère l'élément avec la clé donnée. |
Modificateurs
Les fonctions | Description |
---|---|
insérer | Insérer un élément dans la carte. |
effacer | Effacez des éléments de la carte. |
échanger | Échangez le contenu de la carte. |
clair | Supprimez tous les éléments de la carte. |
emplace | Construisez et insérez les nouveaux éléments dans la carte. |
emplace_hint | Construisez et insérez de nouveaux éléments dans la carte par indice. |
Observateurs
Les fonctions | Description |
---|---|
clé_comp | Renvoie une copie de l’objet de comparaison clé. |
valeur_comp | Renvoie une copie de l'objet de comparaison de valeurs. |
Opérations
Les fonctions | Description |
---|---|
trouver | Recherchez un élément avec la clé donnée. |
compter | Obtient le nombre d'éléments correspondant à la clé donnée. |
borne inférieure | Renvoie un itérateur à la limite inférieure. |
limite_upérieure | Renvoie un itérateur à la limite supérieure. |
plage_égale | Renvoie la plage d'éléments correspondant à la clé donnée. |
Allocateur
Les fonctions | Description |
---|---|
get_allocator | Renvoie un objet allocateur utilisé pour construire la carte. |
Fonctions surchargées des non-membres
Les fonctions | Description |
---|---|
opérateur== | Vérifie si les deux cartes sont égales ou non. |
opérateur!= | Vérifie si les deux cartes sont égales ou non. |
opérateur< | Vérifie si la première carte est inférieure à l'autre ou non. |
opérateur<=< td> | Vérifie si la première carte est inférieure ou égale à une autre ou non. | =<>
opérateur> | Vérifie si la première carte est supérieure à l'autre ou non. |
opérateur>= | Vérifie si la première carte est supérieure ou égale à l'autre ou non. |
échanger() | Échange l'élément de deux cartes. |