Iterare con un ciclo for
Fa parte della sezione Logica e flusso del percorso C++ di Coddy. Lezione 14 di 56.
Ora che sai come accedere ai singoli elementi e controllare la dimensione di un vector, impariamo a elaborare ogni elemento sistematicamente usando un ciclo for tradizionale. Questo approccio combina il metodo .size() con l'accesso basato sugli indici per visitare ogni elemento in sequenza.
Un ciclo for tradizionale usa una variabile indice che parte da 0 e viene incrementata finché non raggiunge la dimensione del vettore:
std::vector<std::string> names = {"Alice", "Bob", "Charlie"};
for (int i = 0; i < names.size(); i++) {
std::cout << names[i] << std::endl;
}In questo esempio, la condizione del ciclo i < names.size() assicura che non superiamo i limiti del vettore, mentre names[i] accede a ogni elemento usando l'indice corrente. Il ciclo stamperà ogni nome su una riga separata.
Questo schema è fondamentale per elaborare raccolte di dati. La variabile indice i ti dà un controllo preciso sull’elemento con cui stai lavorando, rendendola utile quando devi conoscere la posizione di ogni elemento o quando vuoi modificare gli elementi durante l’iterazione.
Nota che, dopo la fine del ciclo, i è uguale a names.size(), in questo caso 3, perché il ciclo si interrompe non appena la condizione i < names.size() diventa falsa.
Sfida
FacileCrea un programma che utilizzi un ciclo for tradizionale per scorrere un vector di nomi di prodotti e visualizzarli in un elenco numerato.
Verranno forniti i seguenti input:
- Un intero
nche rappresenta il numero di prodotti - Poi
nstringhe che rappresentano i nomi dei prodotti
Il tuo programma dovrebbe:
- Creare un
std::vector<std::string>denominatoproducts - Usare
push_back()per aggiungere al vector ciascuno deglinnomi dei prodotti - Usare un ciclo for tradizionale con una variabile indice per scorrere il vector
- Nel ciclo, usare il metodo
.size()per la condizione del ciclo - Usare l'operatore parentesi quadre
[]per accedere a ciascun elemento tramite il suo indice - Stampare ciascun prodotto con il relativo numero di posizione (a partire da 1) nel formato specificato
Usa esattamente il seguente formato di output:
Product 1: [first product name]
Product 2: [second product name]
Product 3: [third product name]
...Il ciclo for dovrebbe iniziare con l'indice 0, usare i < products.size() come condizione e incrementare i a ogni iterazione. Quando stampi, aggiungi 1 all'indice per visualizzare i numeri di posizione a partire da 1.
Provalo tu
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main() {
// Leggi il numero di prodotti
int n;
cin >> n;
// Crea un vettore per memorizzare i nomi dei prodotti
vector<string> products;
// Leggi i nomi dei prodotti e aggiungili al vettore
for (int i = 0; i < n; i++) {
string product;
cin >> product;
products.push_back(product);
}
// TODO: Scrivi il tuo codice qui sotto
// Usa un ciclo for tradizionale per scorrere il vettore
// e stampa ogni prodotto con il suo numero di posizione
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àEsercitati da solo: Compilatore C++ online