In questo tutorial, impareremo a conoscere i cicli C ++ con range for e le sue best practice con l'aiuto di esempi.
C ++ 11 ha introdotto il for
ciclo con intervallo . Questo for
ciclo viene utilizzato in modo specifico con raccolte come array e vettori .
Per esempio,
// initialize an int array int num(3) = (1, 2, 3); // use of ranged for loop for (int var : num) ( // code )
Qui, il for
ciclo con intervallo esegue l'iterazione dell'array num dall'inizio alla fine. La int
variabile var memorizza il valore dell'elemento array in ogni iterazione.
La sua sintassi è,
for (rangeDeclaration : rangeExpression) ( // code )
Nell'esempio sopra,
- rangeDeclaration -
int var
- rangeExpression - num

Esempio 1: intervallo per loop utilizzando array
#include using namespace std; int main() ( // initialize array int numArray() = (1, 2, 3, 4, 5); // use of ranged for loop to print array elements for (int n : numArray) ( cout << n << " "; ) return 0; )
Produzione
1 2 3 4 5
In questo esempio, abbiamo dichiarato e inizializzato un int
array denominato numArray. Qui, abbiamo usato il for
ciclo con intervallo per stampare gli elementi di numArray.
- prima iterazione - n prende il valore del primo membro dell'array, che è
1
- seconda iterazione - n assume il valore di
2
e viene quindi stampato e così via.
Nota: il ciclo con intervallo for itera automaticamente l'array dall'inizio alla fine. Non è necessario specificare il numero di iterazioni nel ciclo.
Esempio 2: C ++ a intervalli per il ciclo utilizzando il vettore
#include #include using namespace std; int main() ( // declare and initialize vector vector num_vector = (1, 2, 3, 4, 5); // print vector elements for (int n : num_vector) ( cout << n << " "; ) return 0; )
Produzione
1 2 3 4 5
Esempio 3: dichiarazione della raccolta all'interno del ciclo
#include using namespace std; int main() ( // define the collection in the loop itself for (int n : (1, 2, 3, 4, 5)) ( cout << n << " "; ) return 0; )
Produzione
1 2 3 4 5
Qui, abbiamo dichiarato la raccolta all'interno del ciclo stesso, ovvero
rangeExpression = (1, 2, 3, 4, 5)
Questo è anche un modo valido per utilizzare il for
ciclo con intervallo e funziona allo stesso modo di quando usiamo un array o un vettore effettivo.
C ++ Intervallo per le migliori pratiche di ciclo
Negli esempi precedenti, abbiamo dichiarato una variabile nel for
ciclo per memorizzare ogni elemento della raccolta in ogni iterazione.
int num(3) = (1, 2, 3); // copy elements of num to var for (int var : num) ( // code )
Tuttavia, è meglio scrivere il ciclo for basato su intervalli in questo modo:
// access memory location of elements of num for (int &var : num) ( // code )
Si noti l'uso di &
before var. Qui,
int var : num
- Copia ogni elemento di num nella variabile var in ogni iterazione. Questo non va bene per la memoria del computer.int &var : num
- Non copia ogni elemento di num in var. Accede invece agli elementi di num direttamente da num stesso. Questo è più efficiente.
Nota: l' &
operatore è noto come operatore di riferimento. Ne impareremo di più nei puntatori C ++.

Nota: se non stiamo modificando l'array / vector / collection all'interno del ciclo, è meglio usare la const
parola chiave nella dichiarazione di intervallo.
// collection is not modified in the loop for (const int &var : num) ( // code )