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

C++C++Beginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

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

Incluez 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éfinissez la fonction principale

Définissez la fonction main() pour commencer à écrire votre code.

int main() {
  //Votre code
  return 0;   //Sortie du programme
}

Créez 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érez 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));

Utilisez 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";
}

Compilez et exécutez 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

Testez 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étez 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écapitulatif

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