Espacios de nombres
Variantes
Acciones

std::iter_swap(std::reverse_iterator)

De cppreference.com
 
 
Biblioteca de iteradores
Conceptos de iteradores
Primitivas de iteradores
Conceptos de algoritmos y servicios
Conceptos invocables indirectos
Requerimientos comunes de algoritmos
Servicios
Adaptadores de iteradores
Iteradores de flujos
Puntos de personalización de iteradores
Operaciones de iteradores
(C++11)
(C++11)
Acceso a rangos
(C++11)(C++14)
(C++11)(C++14)
(C++17)(C++20)
(C++14)(C++14)
(C++14)(C++14)
(C++17)
(C++17)
 
std::reverse_iterator
Las funciones miembro
Original:
Member functions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Terceros funciones
Original:
Non-member functions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
 
template< std::indirectly_swappable<Iter> Iter2 >

friend constexpr void iter_swap( const reverse_iterator& x,
                                 const std::reverse_iterator<Iter2>& y )

    noexcept(/* véase más abajo */);
(desde C++20)

Intercambia los objetos a los que apuntan los dos iteradores subyacentes.

Equivalente a auto tmp_x = x.base();
auto tmp_y = y.base();
ranges::iter_swap(--tmp_x, --tmp_y);
.

Esta plantilla de función no es visible a una búsqueda no calificada o calificada, y puede encontrarse solamente mediante la búsqueda dependiente de argumento cuando std::reverse_iterator<Iter> es una clase asociada de los argumentos.

Contenido

[editar] Parámetros

x, y - Iteradores reversibles de los elementos a intercambiar.

[editar] Complejidad

Constante.

[editar] Excepciones

Especificación noexcept:   (desde C++11)
noexcept(

    std::is_nothrow_copy_constructible_v<Iter> &&
    std::is_nothrow_copy_constructible_v<Iter2> &&
    noexcept(ranges::iter_swap(--std::declval<Iter&>(), --std::declval<Iter2&>()))

)

[editar] Ejemplo

#include <iostream>
#include <iterator>
#include <list>
#include <vector>
 
int main()
{
    std::vector v{1, 2, 3};
    std::list l{4, 5, 6};
 
    std::reverse_iterator<std::vector<int>::iterator> r1{v.rbegin()};
    std::reverse_iterator<std::list<int>::iterator> r2{l.rbegin()};
 
    std::cout << *r1 << ' ' << *r2 << '\n';
 
    iter_swap(r1, r2); // búsqueda dependiente de argumento
 
    std::cout << *r1 << ' ' << *r2 << '\n';
}

Salida:

3 6
6 3

[editar] Véase también

Intercambia los valores de dos objetos
(plantilla de función) [editar]
Intercambia dos rangos de elementos.
(plantilla de función) [editar]
Intercambia los elementos a los que apuntan dos iteradores
(plantilla de función) [editar]
(C++20)
Intercambia los valores referenciados por dos objetos desreferenciables.
(objeto punto de personalización) [editar]
(C++20)
Intercambia los objetos a los que apuntan dos iteradores subyacentes
(plantilla de función) [editar]