C ++ ranged for Loop (con ejemplos)

En este tutorial, aprenderemos sobre los bucles for de rango de C ++ y sus mejores prácticas con la ayuda de ejemplos.

C ++ 11 introdujo el forbucle a distancia . Este forbucle se usa específicamente con colecciones como matrices y vectores .

Por ejemplo,

 // initialize an int array int num(3) = (1, 2, 3); // use of ranged for loop for (int var : num) ( // code )

Aquí, el forciclo de rango itera la matriz num desde el principio hasta el final. La intvariable var almacena el valor del elemento de la matriz en cada iteración.

Su sintaxis es,

 for (rangeDeclaration : rangeExpression) ( // code )

En el ejemplo anterior,

  • rangeDeclaration -int var
  • rangeExpression - num
Funcionamiento del bucle for ranged en C ++

Ejemplo 1: rango para bucle usando matriz

 #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; )

Salida

 1 2 3 4 5

En este ejemplo, intdeclaramos e inicializamos una matriz denominada numArray. Aquí, usamos el forciclo de rango para imprimir los elementos de numArray.

  • primera iteración : n toma el valor del primer miembro de la matriz, que es1
  • segunda iteración - n toma el valor de 2y luego se imprime y así sucesivamente.

Nota: El bucle for ranged itera automáticamente la matriz desde el principio hasta el final. No es necesario especificar el número de iteraciones en el ciclo.

Ejemplo 2: C ++ ranged for Loop usando Vector

 #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; )

Salida

 1 2 3 4 5

Ejemplo 3: declarar colección dentro del bucle

 #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; )

Salida

 1 2 3 4 5

Aquí, hemos declarado la colección dentro del bucle en sí, es decir

 rangeExpression = (1, 2, 3, 4, 5)

Esta también es una forma válida de usar el forbucle de rango , y funciona de la misma manera que cuando usamos una matriz o vector real.

C ++ clasificado para las mejores prácticas de bucle

En los ejemplos anteriores, hemos declarado una variable en el forciclo para almacenar cada elemento de la colección en cada iteración.

 int num(3) = (1, 2, 3); // copy elements of num to var for (int var : num) ( // code )

Sin embargo, es mejor escribir el bucle for basado en rangos como este:

 // access memory location of elements of num for (int &var : num) ( // code )

Observe el uso de &antes de var. Aquí,

  • int var : num- Copia cada elemento de num a la variable var en cada iteración. Esto no es bueno para la memoria de la computadora.
  • int &var : num- No copia cada elemento de num a var. En cambio, accede a los elementos de num directamente desde el propio num. Esto es más eficiente.

Nota: El &operador se conoce como operador de referencia. Aprenderemos más sobre esto en los punteros de C ++.

El funcionamiento de la dirección que apunta en C ++ varió para el bucle

Nota: Si no estamos modificando la matriz / vector / colección dentro del ciclo, es mejor usar la constpalabra clave en la declaración de rango.

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

Articulos interesantes...