Cómo usar el rango basado para bucle en c ++

Cómo usar el rango basado para bucle en c ++

El lenguaje de programación C ++ Basado en rango para bucle es una característica relativamente reciente que se introdujo por primera vez en C ++ 11. Basado en rango para bucles Ejecutar un bucle sobre el rango. Funcionan con cualquier contenedor que tenga un iterador, que incluya matrices, vectores, mapas, conjuntos e incluso tipos definidos por el usuario que implementan las operaciones necesarias.

Sintaxis de rango basada en bucle

A Basado en rango para bucle tiene una sintaxis muy directa. Está compuesto por la variable de bucle, el contenedor o el rango para iterar y un colon.

para la instrucción (range_declaration: range_expression) bucle

range_declaration: La declaración de rango es la declaración de una variable con el mismo tipo que los elementos de la expresión de componente de rango. Para determinar automáticamente el tipo de componentes en un range_expression, La palabra clave automática se usa con frecuencia.

range_expression: Cada expresión que representa una lista de elementos es un range_expression.

Declaración de bucle: El cuerpo de un bucle for se compone de una o más declaraciones que deben repetirse hasta el final del rango_expresión.

Métodos para ejecutar el rango basado en bucle

Hay tres métodos que se pueden usar para Basado en rango para bucle.

Método 1: Uso de matrices

Basado en rango para bucle se puede ejecutar usando matrices como esta.

#incluir
usando el espacio de nombres STD;
int main ()
int numArray [] = 6, 7, 8, 9, 10;
para (int n: numArray)
cout << n << " ";

regresar 0;

En el código anterior, se inicializó una matriz entera llamada NumArray. Entonces los elementos de NumArray se imprimieron utilizando un Basado en rango para bucle.

Producción

Método 2: Uso de vectores

Basado en rango para bucle se puede ejecutar usando vectores como este.

#incluir
#incluir
usando el espacio de nombres STD;
int main ()

int x;
vector v = 1, 2, 3, 4, 5;
para (int x: v)

cout << x << " ";

regresar 0;

En el código anterior, se llamó a un vector V fue inicializado. Aquí, los elementos de Vector V se imprimieron utilizando un Basado en rango para bucle.

Producción

Método 3: Declarar la colección Inside Loop

Basado en rango para bucle También se puede declarar dentro del bucle. Funciona de manera similar a cómo lo haría una matriz o vector real.

#incluir
usando el espacio de nombres STD;
int main ()
para (int n: 5, 10, 15, 20, 25)
cout << n << " ";

regresar 0;

En el código anterior, la colección se declara dentro del bucle y luego se imprime.

Producción

Ventajas y desventajas del rango basado para bucle

Basado en rango para bucle tiene más beneficios que convencionales para bucles de varias maneras, particularmente cuando se trabaja con contenedores. Como la variable de bucle se define dentro del bucle y el rango se establece explícitamente, hace que el código sea mucho más corto y más fácil de comprender. También son más seguros, ya que no hay necesidad de preocuparse por los errores fuera de uno u otros errores de indexación. Son más adaptables ya que pueden usar cualquier contenedor, independientemente de su tipo o tamaño. El Basado en rango para bucle tiene varios beneficios, uno de los cuales es que hace que nuestro código sea más limpio y simple de entender.

Basado en rango para bucles aunque tengan ciertas restricciones. Como la variable de bucle es una copia o una referencia al elemento en lugar del elemento real, no se puede usar para alterar los elementos del contenedor. Como el rango completo se itera constantemente, no podemos omitir ningún elemento o iterar solo una parte de los datos.

Conclusión

Basado en rango para bucle es una característica poderosa y versátil del lenguaje de programación C ++. En comparación con los bucles convencionales para los bucles, ofrecen una mayor seguridad y flexibilidad junto con un enfoque claro y legible para iterar a través de contenedores y reducir el código. Basado en rango para bucle es imprescindible para aprender para los programadores de C ++.