4. Plan
class
map
Stockage
Opérations
Conclusion
La classe map :
La classe map, qui est également appelée dictionnaire ou
tableau associé, est définie dans le fichier d'en-tête <map>. C'est
un conteneur qui stocke une paire de clé et de valeur, deux
valeurs mappées ne peuvent pas partager les mêmes valeurs de
clé. Les éléments sont triés par ordre croissant en fonction de la
clé. Dans un dictionnaire, les clés sont uniques.
En interne, les conteneurs map conservent tous leurs éléments
triés. Les éléments sont toujours insérés dans leur position
respective en suivant cet ordre.
Les valeurs clés servent à trier et à identifier les éléments de
manière unique. Les valeurs mappées servent à stocker le
contenu associé à la clé. Les deux peuvent être de types
différents, mais le type membre pair les combine.
1
Présentation class map
II
Introduction
5. Plan
Introduction
class
map
Stockage
Opérations
Conclusion ❖ syntexe
std::map<type_cle, val_type> nomMap;
_ type_cle dénote le type de données des clés de dictionnaire.
_ type_valeur indique le type de données des valeurs correspondant aux clés
de dictionnaire.
_ nomMap est le nom de dictionnaire.
❖ Exemple
map<string, int> dict1;
Nous avons déclaré ici un dictionnaire nommé dict1. Le dictionnaire
aura une chaîne de caractères comme types de données pour les clés
et un entier comme type de données pour les valeurs.
2
7. PLAN
Introduction
class
map
Stockage
Opérations
Conclusion ❏ Taille
Il existe trois fonctions membres dans la classe map que nous
pouvons utiliser pour vérifier la taille, la taille maximale et le vide.
Elles sont les mêmes que celles discutées pour les conteneurs de
séquence.
Opérations
IV
Syntaxe Description
dict1.size(); Renvoie la taille actuelle
dict1.max_size(); Renvoie la taille maximale
dict1.empty(); Renvoie true si le dictionnaire dict1 est vide
8. PLAN
Introduction
class
map
Stockage
Opérations
Conclusion
❏ Acceder aux elements
★ Operateur []
Si k correspond à la clé d'un élément du conteneur, la fonction renvoie une
référence à sa valeur mappée.
Si k ne correspond à la clé d'aucun élément du conteneur, la fonction insère un
nouvel élément avec cette clé et renvoie une référence à sa valeur mappée.
Notez que cette fonction augmente toujours la taille du conteneur de 1, même si
aucune valeur mappée n'est assignée à l'élément.
★ map::at
Renvoie une référence à la valeur mappée de l'élément identifié par la clé k.
Si k ne correspond à la clé d'aucun élément du conteneur, la fonction lève
une exception out_of_range.
9. PLAN
Introduction
class
map
Stockage
Opérations
Conclusion
❏ Insertion
Étend le conteneur en insérant de nouveaux éléments,
augmentant effectivement la taille du conteneur du nombre
d'éléments insérés.
iterator map_name.insert({clé, élément})
La fonction accepte une paire composée d'une clé et d'un élément
qui doit être inséré dans le conteneur map. La fonction n'insère pas
la clé et l'élément dans le dictionnaire si la clé existe déjà dans le
dictionnaire. La fonction renvoie un itérateur pointant vers le nouvel
élément dans le conteneur.
iterator map_name.insert(iterator position, {clé, élément})
10. PLAN
Introduction
class
map
Stockage
Opérations
Conclusion
La classe map utilise des itérateurs bidirectionnels (et non à
accès aléatoire). Elle fournit les mêmes huit itérateurs internes que
les conteneurs de séquence, dont quatre sont constants et quatre
non constants. Les itérateurs constants et non constants ont la
même syntaxe.
❏ Iterateur
Syntaxe Description
dict1.begin() Retourne un itérateur régulier au premier
élément
dict1.end() Renvoie un itérateur régulier à l'élément
après le dernier
dict1.rbegin() Retourne un itérateur inverse au dernier
élément
dict1.rend() Renvoie un itérateur inverse à l'élément
avant le premier
11. PLAN
Introduction
class
map
Stockage
Opérations
Conclusion
La suppression d'éléments doit se faire par le biais de la clé ou de l'itérateur.
❏ supprimer des elements dans dictionnaire
Syntaxe Description
dict1.erase(k) Supprime k
dict1.erase(pos) Supprimer un élément pointé
par pos
dict1.erase(premier,
dernier)
Supprimer les éléments de
la plage [premier, dernier]
dict1.clear() Vider le dictionnaire
12. PLAN
Introduction
class
map
Stockage
Opérations
Conclusion
Comme classe map utilise un arbre binaire de recherche
équilibré pour stocker les éléments, la recherche est possible et
efficace. Il y a cinq membres pour la recherche, comme indiqué
ci-dessous :
❏ Rechercher dans un dictionnaire
Syntaxe Description
dict1.count(k) Renvoie le nombre d'éléments égal à
k
dict1.find(k) Retourne un itérateur pointant sur le
premier k trouvé
dict1.lower_bound(k) Renvoie la première position où k
peut être inséré
dict1.upper_bound(k) Renvoie la dernière position où k
peut être inséré
dict1.equal_range(k) Combinaison de limite inférieure et
supérieure