C ++ Ranged for Loop (con esempi)

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 forciclo con intervallo . Questo forciclo 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 forciclo con intervallo esegue l'iterazione dell'array num dall'inizio alla fine. La intvariabile 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
Utilizzo di ranged for loop in C ++

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 intarray denominato numArray. Qui, abbiamo usato il forciclo 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 2e 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 forciclo 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 forciclo 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 ++.

Il funzionamento del puntamento dell'indirizzo in C ++ variava per ciclo

Nota: se non stiamo modificando l'array / vector / collection all'interno del ciclo, è meglio usare la constparola chiave nella dichiarazione di intervallo.

 // collection is not modified in the loop for (const int &var : num) ( // code )

Articoli interessanti...