English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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 |
---|---|
101 | Nikita |
102 | Robin |
103 | Deep |
104 | John |
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;
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
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.
#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
Voici la liste de toutes les fonctions membres de map :
Fonction | Description |
---|---|
constructors | Constructeurs de map |
destructors | Destructeurs de map |
operator= | Copie les éléments de la map dans un autre conteneur de map. |
Fonction | Description |
---|---|
begin | Renvoie un itérateur vers le premier élément de la map. |
cbegin | Renvoie un itérateur constant vers le premier élément de la map. |
end | Renvoie un itérateur vers la fin. |
cend | Renvoie un itérateur constant vers la fin. |
rbegin | Renvoie un itérateur vers la fin. |
rend | Renvoie un itérateur vers le début. |
crbegin | Renvoie un itérateur constant vers la fin. |
crend | Renvoie un itérateur constant vers le début. |
Fonction | Description |
---|---|
empty | Renvoie true si la map est vide. |
size | Renvoie le nombre d'éléments dans la map. |
max_size | Renvoie la capacité maximale de la map. |
Fonction | Description |
---|---|
operator[] | Récupère l'élément avec la clé donnée. |
at | Récupère l'élément avec la clé donnée. |
Fonction | Description |
---|---|
insert | Insère un élément dans la map. |
erase | Efface les éléments de la map. |
swap | Échange le contenu de la map. |
clear | Supprime tous les éléments de la map. |
emplace | Construit un nouvel élément et l'insère dans la map. |
emplace_hint | Construit un nouvel élément à partir d'un提示 et l'insère dans la map. |
Fonction | Description |
---|---|
key_comp | Renvoie une copie de l'objet de comparaison de la clé. |
value_comp | Renvoie une copie de l'objet de comparaison de la valeur. |
Fonction | Description |
---|---|
find | Recherche d'éléments avec la clé donnée. |
count | Obtient le nombre d'éléments correspondant à la clé donnée. |
lower_bound | Renvoie la borne inférieure de l'itérateur. |
upper_bound | Renvoie un itérateur à la borne supérieure. |
equal_range | Renvoie l'intervalle d'éléments correspondant à la clé donnée. |
Fonction | Description |
---|---|
get_allocator | Retourner l'objet分配器 allocator utilisé pour construire la map. |
Fonction | Description |
---|---|
operator== | Vérifier si deux maps sont égales. |
operator! MessageLookup | Vé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. |