std::iter_swap(std::reverse_iterator)

Swaps the objects pointed to by two adjusted underlying iterators.

# Declarations

template< std::indirectly_swappable<Iter> Iter2 >
friend constexpr void iter_swap( const reverse_iterator& x,
const std::reverse_iterator<Iter2>& y )
noexcept(/* see below */);

(since C++20)

# Parameters

# Example

#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); // ADL
 
    std::cout << *r1 << ' ' << *r2 << '\n';
}

# See also