std::reverse() en C++

reverse() es una función predefinida en el algoritmo del archivo de encabezado. Se define como una plantilla en el archivo de encabezado mencionado anteriormente. Invierte el orden de los elementos en el rango [primero, último] de cualquier contenedor. La complejidad del tiempo es O(n). 
Nota: El rango utilizado es [primero, último], que contiene todos los elementos entre primero y último, incluido el elemento señalado por primero pero no el elemento señalado por último.
Sintaxis: 

void reverse(BidirectionalIterator first, BidirectionalIterator last)
BidirectionalIterator is an iterator that can be used to access any
elements of a container in both forward and backward direction.

Ejemplos: 

Input : 10 11 12 13 14 15 16 17
Output :10 11 12 13 14 17 16 15
Explanation:
reverse(v.begin() + 5, v.begin() + 8);
In the above function, input we have applied reverse() on the vector
from index 5 to index 7.
Therefore when we display the vector we get reverse order
from index 5 to index 7.

CPP

// CPP program to illustrate
// std::reverse() function of STL
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
  
int main()
{
    vector<int> vec1;
    vector<int>::iterator p;
  
    // Inserting elements in vector
    for (int i = 0; i < 8; i++) {
        vec1.push_back(i + 10);
    }
    // Displaying elements of vector
    cout<<"Initial Vector:"<<endl;
    for(p = vec1.begin(); p < vec1.end(); p++) {
        cout << *p << " ";
    }
    cout << endl;
  
    cout << "Reverse only from index 5 to 7 in vector:\n";
    // Reversing elements from index 5 to index 7
    reverse(vec1.begin() + 5, vec1.begin() + 8);
  
    // Displaying elements of vector after Reversing
    for (p = vec1.begin(); p < vec1.end(); p++) {
        cout << *p << " ";
    }
    cout << endl <<endl;
  
    vector<int> vec2{ 4, 5, 6, 7 };
  
    cout<<"Initial Vector:"<<endl;
    for (p = vec2.begin(); p < vec2.end(); p++) {
        cout << *p << " ";
    }
    cout << endl;
  
    cout << "Reverse full Vector:"<<endl;
    // Reversing directly from beginning to end
    reverse(vec2.begin(), vec2.end());
      
    // Displaying elements of vector after Reversing
    for (p = vec2.begin(); p < vec2.end(); p++) {
        cout << *p << " ";
    }
    cout << endl;
  
    return 0;
}

Producción: 

Initial Vector:
10 11 12 13 14 15 16 17 
Reverse only from index 5 to 7 in vector:
10 11 12 13 14 17 16 15 

Initial Vector:
4 5 6 7 
Reverse full Vector:
7 6 5 4 

Complejidad temporal: O(n)

Este artículo es una contribución de Hardik Gaur . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente. 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *