Utilisation de la méthode find dans une carte STL en C++

C++Beginner
Pratiquer maintenant

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é.