Les Maps en C++

Introduction aux Maps

Les maps constituent des conteneurs associatifs qui stockent des éléments sous forme de paires de clés et de valeurs. Dans une map, les clés permettent d'organiser et d'identifier les éléments, tandis que les valeurs contiennent les informations associées à ces clés. Il est important de noter que chaque valeur doit avoir une clé unique.

Création d'une Map

Pour créer une map vide, vous pouvez utiliser le mot-clé map, en déclarant les types de données pour la clé et la valeur, ainsi que le nom de la map :

std::map mapName;

Dans cette syntaxe, type1 et type2 représentent respectivement les types des clés et des valeurs. Pour initialiser une map avec des valeurs dès sa déclaration, vous utiliserez la syntaxe suivante :

std::map mapName { {key1, value1}, {key2, value2}, ... };

Exemple de Map

Voici un exemple de code qui montre la création d'une map vide, appelée emptyMap, et d'une map initialisée avec des valeurs, clothingStore :

#include 
#include 
#include 

int main() {
    // Initialisation de la map vide
    std::map emptyMap;

    // Initialisation de la map avec des articles
    std::map clothingStore { {"tshirt", 10}, {"pants", 12}, {"sweaters", 18} };
}

Accéder aux Éléments

Pour accéder aux éléments d'une map, vous pouvez utiliser la syntaxe avec crochets :

mapName[key]

Cette instruction retourne la valeur mappée associée à la clé donnée. Par exemple, pour récupérer l'élément sweaters de la map clothingStore, vous pouvez faire :

std::cout << clothingStore["sweaters"]; // Résultat : 18

Fonction de Comparaison et Tri

Les éléments d'une map sont triés par défaut selon leurs clés en ordre croissant. Voici un exemple qui illustre ce comportement :

#include 
#include 
#include 

int main() {
    // Initialisation de la map avec reptiles
    std::map reptiles {
        {10, "Komodo Dragon"},
        {15, "Saltwater Crocodile"},
        {8, "Leatherback Sea Turtle"}
    };

    // Initialisation d'un itérateur
    std::map::iterator iter;
    for (iter = reptiles.begin(); iter != reptiles.end(); ++iter) {
        std::cout << '\t' << iter->first << '\t' << iter->second << '\n';
    }
}

Le code ci-dessus affichera les valeurs en ordre croissant :

8   Leatherback Sea Turtle
10  Komodo Dragon
15  Saltwater Crocodile

Vous pouvez modifier la fonction de comparaison par défaut pour trier les éléments par ordre décroissant à l'aide de std::greater<dataType>. Pour cela, vous pouvez définir la fonction de comparaison lors de l'initialisation d'une map comme suit :

std::map> mapName;

Exemples de Méthodes Utiles

Voici quelques méthodes utiles pour manipuler des maps : - clear() : Supprime tous les éléments d'une map. - erase() : Supprime un élément identifié par sa clé. - insert() : Insère une paire clé-valeur dans la map.