Vérifier la présence d'éléments
Fait partie de la section Logique et Flux du Journey C++ de Coddy — leçon 37 sur 56.
Lorsque vous travaillez avec des ensembles, vous avez souvent besoin de vérifier si un élément spécifique existe avant d'effectuer des opérations sur celui-ci. La méthode .count() offre un moyen simple de vérifier si un élément est présent dans votre ensemble.
Tout comme avec les maps, la méthode .count() renvoie 1 si l'élément existe dans l'ensemble, et 0 s'il n'existe pas. Cela la rend parfaite pour les vérifications conditionnelles :
std::set<int> numbers = {10, 20, 30};
if (numbers.count(20)) {
std::cout << "Found 20 in the set!" << std::endl;
} else {
std::cout << "20 is not in the set" << std::endl;
}Cette approche est beaucoup plus sûre que d'essayer d'accéder directement aux éléments, surtout lorsque vous n'êtes pas sûr qu'ils existent. Vous pouvez utiliser .count() pour valider la saisie de l'utilisateur, prévenir les erreurs ou prendre des décisions basées sur ce qui est actuellement stocké dans votre ensemble.
Défi
FacileCréez un programme qui démontre comment vérifier en toute sécurité l'existence d'éléments dans un std::set avant d'effectuer des opérations sur ceux-ci. Ce défi testera votre compréhension de la méthode .count() pour la vérification d'éléments.
Les entrées suivantes seront fournies :
- Un entier
nreprésentant le nombre d'éléments à ajouter initialement à l'ensemble - Ensuite,
nentiers à insérer dans l'ensemble - Un entier
mreprésentant le nombre d'éléments à rechercher - Ensuite,
mentiers dont il faut vérifier l'existence dans l'ensemble
Votre programme doit :
- Créer un
std::set<int>vide - Lire le nombre d'éléments à ajouter et les insérer dans l'ensemble en utilisant
.insert() - Lire le nombre d'éléments à rechercher
- Pour chaque élément de recherche, utiliser la méthode
.count()pour vérifier s'il existe dans l'ensemble - Afficher les messages appropriés selon que chaque élément est trouvé ou non
- Après toutes les recherches, afficher le nombre total d'éléments qui ont été trouvés
Utilisez le format de sortie exact suivant :
Pour chaque résultat de recherche :
Searching for [number]: FoundPour les éléments non trouvés :
Searching for [number]: Not foundRésumé à la fin :
Total found: [count] out of [total_searches]Utilisez numbers.count(searchValue) pour vérifier si un élément existe dans l'ensemble. S'il retourne 1, l'élément existe ; s'il retourne 0, l'élément n'existe pas. Maintenez un compteur pour suivre combien d'éléments ont été trouvés avec succès lors des opérations de recherche.
Aide-mémoire
Utilisez .count() pour vérifier si un élément existe dans un ensemble. Il renvoie 1 si l'élément existe, 0 sinon :
std::set<int> numbers = {10, 20, 30};
if (numbers.count(20)) {
std::cout << "Found 20 in the set!" << std::endl;
} else {
std::cout << "20 is not in the set" << std::endl;
}Cette méthode est plus sûre que d'essayer d'accéder directement aux éléments et elle est parfaite pour les vérifications conditionnelles et la validation des entrées.
Essayez vous-même
#include <iostream>
#include <set>
using namespace std;
int main() {
// Lire le nombre d'éléments à ajouter à l'ensemble
int n;
cin >> n;
// Créer un ensemble vide
set<int> numbers;
// Lire et insérer n éléments dans l'ensemble
for (int i = 0; i < n; i++) {
int element;
cin >> element;
numbers.insert(element);
}
// Lire le nombre d'éléments à rechercher
int m;
cin >> m;
int foundCount = 0;
// TODO: Écrivez votre code ci-dessous
// Pour chaque élément de recherche :
// 1. Lire la valeur de recherche
// 2. Utiliser numbers.count(searchValue) pour vérifier si elle existe
// 3. Afficher le message approprié
// 4. Mettre à jour foundCount si l'élément est trouvé
// Afficher le résumé
cout << "Total found: " << foundCount << " out of " << m << endl;
return 0;
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique et Flux
1Pointeurs et mémoire
Qu'est-ce qu'un pointeur ?Opérateur d'adresseOpérateur de déréférencementPointeurs nulsPointeurs et tableauxMémoire dynamique avec 'new'Libérer la mémoire avec 'delete'Récapitulatif - Pratique des pointeurs2Vecteurs (Tableaux dynamiques)
Introduction à std::vectorCréer un vecteurAjouter des élémentsAccéder aux élémentsTaille d'un vecteurItérer avec une boucle ForBoucle For basée sur l'intervalleSupprimer des élémentsRécapitulatif - Opérations sur les vecteurs3Projet : Outil de liste de tâches
Présentation du projetAjouter une tâche6Ensembles (Éléments uniques)
Introduction à std::setCréer un Set et ajouter des élémentsVérifier la présence d'élémentsSupprimer des élémentsParcourir un SetRécapitulatif - Nombres uniques