Menu
Coddy logo textTech

Iterare su un set

Fa parte della sezione Logica e flusso del percorso C++ di Coddy. Lezione 39 di 56.

Ora che sai aggiungere, controllare e rimuovere elementi da un set, impariamo a scorrere tutti gli elementi di un set. Il ciclo for basato su intervalli è il modo più semplice per visitare ogni elemento.

Ecco come iterare su un insieme:

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

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

La caratteristica più importante da ricordare è che gli insiemi mantengono automaticamente l’ordine ordinato. Quando iteri sull’insieme di frutti qui sopra, l’output sarà "apple", "banana", "cherry" — non nell’ordine in cui li hai inseriti. Questo ordinamento automatico è uno dei principali vantaggi dell’utilizzo di std::set.

Questa iterazione ordinata rende i set perfetti per visualizzare i dati in ordine alfabetico o numerico senza doverli ordinare manualmente. Che tu stia lavorando con numeri, stringhe o altri tipi confrontabili, il set li presenterà sempre nella loro sequenza ordinata naturale.

challenge icon

Sfida

Facile

Crea un programma che dimostri la funzionalità di ordinamento automatico di std::set aggiungendo parole a un set e poi iterando su di esse per visualizzarle in ordine alfabetico. Questa sfida metterà alla prova la tua comprensione dei cicli for basati su intervalli con i set e di come i set mantengono l'ordine ordinato.

Verranno forniti i seguenti input:

  • Un intero n che rappresenta il numero di parole da aggiungere al set
  • Poi n stringhe che rappresentano le parole da inserire nel set

Il tuo programma dovrebbe:

  1. Creare un std::set<std::string> vuoto
  2. Leggere il numero di parole da aggiungere
  3. Usare un ciclo per leggere ogni parola e inserirla nel set usando il metodo .insert()
  4. Usare un ciclo for basato su intervalli per iterare sul set e stampare ogni parola
  5. Dopo aver stampato tutte le parole, visualizzare il conteggio totale delle parole uniche nel set

Usa il seguente formato di output esatto:

Per ogni parola nel set (in ordine alfabetico):

[word]

Riepilogo alla fine:

Total unique words: [count]

Usa un ciclo for basato su intervalli con la sintassi for (const std::string& word : wordSet) per iterare su tutti gli elementi del set. Il set presenterà automaticamente le parole in ordine alfabetico, dimostrando uno dei principali vantaggi dell'utilizzo di std::set. Ricorda che se nell'input vengono fornite parole duplicate, il set le ignorerà automaticamente, quindi verranno visualizzate solo le parole uniche.

Provalo tu

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

int main() {
    // Leggi il numero di parole
    int n;
    cin >> n;
    
    // Crea un set vuoto per memorizzare le parole
    set<string> wordSet;
    
    // TODO: Scrivi qui il tuo codice
    // Leggi n parole e inseriscile nel set
    // Usa un ciclo for basato su intervallo per scorrere il set e stampare ogni parola
    // Stampa il numero totale di parole uniche
    
    return 0;
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore C++ online