Introduction
Dans ce laboratoire, vous allez apprendre à utiliser la méthode find() dans une carte (Map) en C++. La méthode find() est utilisée pour rechercher un élément dans une carte avec une clé donnée. Ce laboratoire suppose que vous avez des connaissances de base en C++ et sur le conteneur carte (Map).
Créer un nouveau fichier C++
Tout d'abord, vous devez créer un nouveau fichier C++ nommé main.cpp dans le répertoire ~/project. Vous pouvez utiliser n'importe quel éditeur de texte ou IDE pour créer et éditer ce fichier.
cd ~/project
touch main.cpp
Inclure les bibliothèques et l'espace de noms nécessaires
En haut du fichier main.cpp, incluez les bibliothèques et la directive d'utilisation nécessaires.
#include <iostream>
#include <map> //include map library
using namespace std;
Définir la fonction principale
Définissez la fonction main() pour commencer à écrire votre code.
int main() {
//Votre code
return 0; //Sortie du programme
}
Créer un conteneur Map
Créez un conteneur Map avec des clés et des valeurs entières. Le conteneur Map stockera des paires clé-valeur triées dans l'ordre croissant des clés.
map<int, int> myMap; //Crée un conteneur Map avec des clés et des valeurs entières
Insérer des éléments dans la Map
Utilisez la méthode insert() pour insérer des paires clé-valeur dans le conteneur Map. Dans cette étape, cinq éléments seront insérés dans la Map.
myMap.insert(make_pair(3, 9));
myMap.insert(make_pair(2, 4));
myMap.insert(make_pair(5, 25));
myMap.insert(make_pair(9, 81));
myMap.insert(make_pair(1, 1));
Utiliser la méthode find() pour rechercher un élément
Utilisez la méthode find(x) pour rechercher un élément avec la clé x dans la Map. Si l'élément est trouvé, la méthode renvoie un itérateur vers l'élément. Si non trouvé, la méthode renvoie un itérateur vers la fin (end()) du conteneur Map. Ici, nous allons rechercher des éléments avec les clés 5 et 6.
map<int, int>::iterator it; //Crée un itérateur pour le conteneur Map
it = myMap.find(5); //Recherche l'élément avec la clé 5 dans la Map
if (it!= myMap.end()) {
cout << "L'élément avec la clé 5 est trouvé et la valeur est " << it->second << endl;
} else {
cout << "L'élément avec la clé 5 n'est pas trouvé\n";
}
it = myMap.find(6); //Recherche l'élément avec la clé 6 dans la Map
if (it!= myMap.end()) {
cout << "L'élément avec la clé 6 est trouvé et la valeur est " << it->second << endl;
} else {
cout << "L'élément avec la clé 6 n'est pas trouvé\n";
}
Compiler et exécuter le programme
Compilez le fichier main.cpp à l'aide de la commande suivante dans le terminal :
g++ main.cpp -o main
Exécutez le programme à l'aide de la commande suivante :
./main
Tester le programme
Après avoir exécuté le programme, vous devriez voir la sortie suivante dans le terminal :
Element with key 5 is found and the value is 25
Element with key 6 is not found
Cette sortie montre que l'élément avec la clé 5 est trouvé dans la Map et que sa valeur est 25. L'élément avec la clé 6 n'est pas trouvé dans la Map.
Compléter le code
Copiez et collez le code complet suivant dans le fichier main.cpp.
#include <iostream>
#include <map>
using namespace std;
int main() {
map<int, int> myMap; //Crée un conteneur Map avec des clés et des valeurs entières
myMap.insert(make_pair(3, 9));
myMap.insert(make_pair(2, 4));
myMap.insert(make_pair(5, 25));
myMap.insert(make_pair(9, 81));
myMap.insert(make_pair(1, 1));
map<int, int>::iterator it; //Crée un itérateur pour le conteneur Map
it = myMap.find(5); //Recherche l'élément avec la clé 5 dans la Map
if (it!= myMap.end()) {
cout << "L'élément avec la clé 5 est trouvé et la valeur est " << it->second << endl;
} else {
cout << "L'élément avec la clé 5 n'est pas trouvé\n";
}
it = myMap.find(6); //Recherche l'élément avec la clé 6 dans la Map
if (it!= myMap.end()) {
cout << "L'élément avec la clé 6 est trouvé et la valeur est " << it->second << endl;
} else {
cout << "L'élément avec la clé 6 n'est pas trouvé\n";
}
return 0; //Sortie du programme
}
Résumé
Félicitations! Vous avez réussi à apprendre à utiliser la méthode find() dans un conteneur Map en C++. La méthode find() est utile pour rechercher des éléments avec une clé spécifique dans un conteneur Map. Rappelez-vous que la méthode find() renvoie un itérateur vers l'élément si l'élément est trouvé, et un itérateur vers la fin (end()) du conteneur Map si l'élément n'est pas trouvé.



