Bucle for basado en rango invertido en C++ con ejemplos

Los bucles for basados ​​en rangos son una versión mejorada de los bucles for. Es bastante similar a los bucles que se usan en Python. El bucle for basado en rango en C++ se agrega desde C++ 11.

Podemos revertir el proceso de iteración del ciclo usando la función boost::adaptors::reverse() que se incluye en el encabezado de la biblioteca boost .

Archivo de cabecera:

#include <boost/range/adaptor/reversed.hpp> 

Sintaxis:

for (auto i : boost::adaptors::reverse(x))

Parámetros:

  • range_declaration: una declaración utilizada para iterar sobre los elementos en un contenedor . A menudo utiliza el especificador automático para la deducción automática de tipos.
  • range_expression: una expresión que representa una secuencia adecuada o una lista de inicio entre llaves.
  • loop_statement: Una declaración, normalmente una declaración compuesta, que es el cuerpo del ciclo.

A continuación se muestra el programa para ilustrar el bucle basado en rango inverso en C++:

CPP14

// C++ program for reverse
// range-based for loop
#include <bits/stdc++.h>
  
// For reversing range based loop
#include <boost/range/adaptor/reversed.hpp>
using namespace std;
  
// Driver Code
int main()
{
    string s = "geeksforgeeks";
  
    int y[] = { 1, 2, 3, 4, 5, 6, 7, 8 };
  
    vector<int> v1{ 1, 2, 3, 4, 5, 6, 7, 8 };
  
    // Reverse range-based for loop
    // to reverse string
    for (auto x : boost::adaptors::reverse(s))
        cout << x << " ";
    cout << endl;
  
    // Reverse range-based for loop
    // to reverse array
    for (auto x : boost::adaptors::reverse(y))
        cout << x << " ";
    cout << endl;
  
    // Reverse range-based for loop
    // to reverse vector
    for (auto x : boost::adaptors::reverse(v1))
        cout << x << " ";
    cout << endl;
  
    return 0;
}
Producción:

s k e e g r o f s k e e g 
8 7 6 5 4 3 2 1 
8 7 6 5 4 3 2 1

Publicación traducida automáticamente

Artículo escrito por kothariji y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *