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.
Sfida
FacileCrea 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
nche rappresenta il numero di parole da aggiungere al set - Poi
nstringhe che rappresentano le parole da inserire nel set
Il tuo programma dovrebbe:
- Creare un
std::set<std::string>vuoto - Leggere il numero di parole da aggiungere
- Usare un ciclo per leggere ogni parola e inserirla nel set usando il metodo
.insert() - Usare un ciclo for basato su intervalli per iterare sul set e stampare ogni parola
- 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;
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Puntatori e memoria
Che cos'è un puntatore?Operatore indirizzoOperatore di dereferenziazionePuntatori nulliPuntatori e arrayMemoria dinamica con 'new'Liberare la memoria con 'delete'Riepilogo - Esercizi sui puntatori2Vettori (array dinamici)
Introduzione a std::vectorCreare un vettoreAggiungere elementiAccedere agli elementiDimensione del vettoreIterare con un ciclo forCiclo for basato su intervalloRimuovere elementiRiepilogo - Operazioni sui vettori5Progetto: strumento per l’inventario
Configurazione del progettoAggiunta e aggiornamento degli articoli3Progetto: Strumento per l’elenco delle attività
Panoramica del progettoAggiungere un’attività6Insiemi (elementi unici)
Introduzione a std::setCreare un set e aggiungere elementiVerificare la presenza di elementiRimuovere elementiIterare su un setRiepilogo - numeri uniciEsercitati da solo: Compilatore C++ online