for-in
Este bucle sirve para recorrer sobre colecciones de datos y estructuras iterables (array / vector
) y acceder a sus valores directamente. Veamos la estructura general del bucle:
for(type_iterator iterator: iterable)
statement
Veamos un ejemplo de iteración sobre un array de enteros, el funcionamiento del cuál se verá más adelante.
#include <iostream>
using namespace std;
int main ()
{
int numbers[]={1,2,3,4,5,6,7};
for(int n : numbers) {
cout << n << ", ";
}
cout << "Blast-off!\n";
return 0;
}
Su salida sería:
1, 2, 3, 4, 5, 6, 7, Blast-off!
Esto nos permite recorrer la lista numbers
, pero no nos permite modificar el valor que contiene el iterador n
. Para poder modificar el valor podríamos utilizar n
como referencia con &n
(el uso de referencia se explicará más adelante):
int main ()
{
int numbers[]={1,2,3,4,5,6,7};
for(int& n : numbers) {
cout << n << ", ";
n++;
}
cout << "Blast-off!\n" << endl;
for(int n: numbers) {
cout << n << ", ";
}
return 0;
}
Su salida sería:
1, 2, 3, 4, 5, 6, 7, Blast-off!
2, 3, 4, 5, 6, 7, 8,
Como vemos, los valores de la lista se han modificado.
Es importante remarcar que esto solo funciona con estándares posteriores a C++11.