Menu
Coddy logo textTech

Parcourir un Set

Fait partie de la section Logique et Flux du Journey C++ de Coddy. Leçon 39 sur 56.

Maintenant que tu sais ajouter, vérifier et supprimer des éléments d’un ensemble, apprenons à parcourir tous les éléments d’un ensemble. La boucle for basée sur une plage offre la manière la plus claire de visiter chaque élément.

Voici comment parcourir un ensemble :

std::set<std::string> fruits = {"banana", "apple", "cherry"};

for (const std::string& fruit : fruits) {
    std::cout << fruit << std::endl;
}

La fonctionnalité la plus importante à retenir est que les ensembles maintiennent automatiquement l’ordre trié. Lorsque vous parcourez l’ensemble de fruits ci-dessus, la sortie sera « apple », « banana », « cherry » — et non pas l’ordre dans lequel vous les avez insérés. Ce tri automatique est l’un des principaux avantages de l’utilisation de std::set.

Cette itération triée rend les ensembles parfaits pour afficher des données par ordre alphabétique ou numérique sans avoir besoin de les trier manuellement. Que vous travailliez avec des nombres, des chaînes de caractères ou d'autres types comparables, l'ensemble les présentera toujours dans leur séquence de tri naturelle.

challenge icon

Défi

Facile

Créez un programme qui démontre la fonctionnalité de tri automatique de std::set en ajoutant des mots à un ensemble, puis en les parcourant pour les afficher dans l’ordre alphabétique. Ce défi testera votre compréhension des boucles for basées sur une plage avec les ensembles et de la manière dont les ensembles maintiennent l’ordre trié.

Les entrées suivantes seront fournies :

  • Un entier n représentant le nombre de mots à ajouter à l’ensemble
  • Puis n chaînes représentant les mots à insérer dans l’ensemble

Votre programme doit :

  1. Créer un std::set<std::string> vide
  2. Lire le nombre de mots à ajouter
  3. Utiliser une boucle pour lire chaque mot et l’insérer dans l’ensemble à l’aide de la méthode .insert()
  4. Utiliser une boucle for basée sur une plage pour parcourir l’ensemble et afficher chaque mot
  5. Après avoir affiché tous les mots, afficher le nombre total de mots uniques dans l’ensemble

Utilisez le format de sortie exact suivant :

Pour chaque mot de l’ensemble (dans l’ordre alphabétique) :

[word]

Résumé à la fin :

Total unique words: [count]

Utilisez une boucle for basée sur une plage avec la syntaxe for (const std::string& word : wordSet) pour parcourir tous les éléments de l’ensemble. L’ensemble présentera automatiquement les mots dans l’ordre alphabétique, ce qui démontre l’un des principaux avantages de l’utilisation de std::set. N’oubliez pas que si des mots en double sont fournis en entrée, ils seront automatiquement ignorés par l’ensemble : seuls les mots uniques seront donc affichés.

Essayez vous-même

#include <iostream>
#include <set>
#include <string>
using namespace std;

int main() {
    // Lire le nombre de mots
    int n;
    cin >> n;
    
    // Créer un ensemble vide pour stocker les mots
    set<string> wordSet;
    
    // À FAIRE : Écrivez votre code ici
    // Lire n mots et les insérer dans l'ensemble
    // Utiliser une boucle for basée sur une plage pour parcourir l'ensemble et afficher chaque mot
    // Afficher le nombre total de mots uniques
    
    return 0;
}
quiz iconTestez-vous

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

Entraînez-vous par vous-même : Compilateur C++ en ligne