Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Langue C

Maîtriser std::map en C++ : Guide complet avec exemples de code

Qu'est-ce que std::map ?

Dans la bibliothèque de modèles standard (STL) C++, std::map est un conteneur associatif qui stocke les éléments sous forme de paires clé-valeur. Chaque clé est unique et le conteneur maintient automatiquement les éléments triés selon la fonction de comparaison de la clé (par défaut, std::less). Les valeurs peuvent être de tout type et sont accessibles via leurs clés correspondantes.

Pourquoi utiliser std::map ?

Syntaxe

Déclarez un map avec :

std::map<TypeCle, TypeValeur> nomMap;

Exemple :

std::map<std::string, int> ageMap;

Types membres

Fonctions intégrées

Itérer sur les éléments du map

Les itérateurs donnent un contrôle total sur l'ordre de parcours, qui est toujours trié par clé.

#include <iostream>
#include <string>
#include <map>
using namespace std;
int main() {
    map<int, string> students;
    students.insert({200, "Alice"});
    students.insert({201, "John"});
    cout << "Map size is: " << students.size() << endl;
    cout << endl << "Default map order:" << endl;
    for (auto it = students.begin(); it != students.end(); ++it) {
        cout << it->first << ": " << it->second << endl;
    }
    return 0;
}

Sortie :

Maîtriser std::map en C++ : Guide complet avec exemples de code

Insérer des données dans std::map

Utilisez insert() pour de nouvelles entrées ; il rejette silencieusement les doublons. Pour écraser une clé existante, utilisez insert_or_assign().

#include <map>
#include <iostream>
using namespace std;
int main() {
    map<int, int> m{{1,3},{2,4},{3,5}};
    m.insert({5,6}); // ajoute nouvelle paire
    m.insert({1,8}); // ignoré, clé 1 existe déjà
    m.insert_or_assign(1,6); // met à jour clé 1 à valeur 6
    cout << "Key\tElement\n";
    for (auto& p : m) {
        cout << p.first << '\t' << p.second << '\n';
    }
    return 0;
}

Sortie :

Maîtriser std::map en C++ : Guide complet avec exemples de code

Rechercher dans un map

Trouver une clé est simple avec find(). Si la clé existe, l'itérateur retourné pointe vers l'élément ; sinon end() est retourné.

#include <iostream>
#include <map>
using namespace std;
int main() {
    map<int, string> students;
    students.insert({200, "Alice"});
    students.insert({201, "John"});
    if (auto it = students.find(201); it != students.end()) {
        cout << "Key 201 has value: " << it->second << endl;
    }
    return 0;
}

Sortie :

Maîtriser std::map en C++ : Guide complet avec exemples de code

Supprimer des données d'un map

Les éléments peuvent être supprimés par clé ou par itérateur. La méthode erase() invalide seulement les itérateurs pointant vers l'élément effacé.

#include <iostream>
#include <map>
using namespace std;
int main() {
    map<string, int> myMap;
    myMap["cow"] = 1;
    myMap["cat"] = 2;
    myMap["lion"] = 3;
    if (auto it = myMap.find("cat"); it != myMap.end()) {
        myMap.erase(it);
    }
    for (auto& p : myMap) {
        cout << p.first << ": " << p.second << endl;
    }
    return 0;
}

Sortie :

Maîtriser std::map en C++ : Guide complet avec exemples de code

Résumé

Langue C

  1. Maîtriser les fonctions de la bibliothèque standard C : Guide pratique
  2. Opérateurs C++ expliqués : Types, exemples et programmes d'exemple
  3. Boucle do-while en C++ : Syntaxe, exemples pratiques et boucles imbriquées
  4. Maîtriser le switch-case en C++ : Syntaxe, utilisation et exemples pratiques
  5. Maîtriser l'allocation de tableaux dynamiques en C++ : Guide pratique avec exemples de code
  6. Maîtriser les pointeurs en C++ : Concepts, exemples et applications pratiques
  7. Surcharge d'opérateurs en C++ : Guide pratique avec exemples de code
  8. Maîtriser std::list en C++ : Syntaxe, Fonctions et Exemples Pratiques
  9. Les Fonctions en C++ Expliquées avec des Exemples de Code Pratiques