std::make_reverse_iterator

Header: <iterator>

make_reverse_iterator is a convenience function template that constructs a std::reverse_iterator for the given iterator i (which must be a LegacyBidirectionalIterator) with the type deduced from the type of the argument.

# Declarations

template< class Iter >
std::reverse_iterator<Iter> make_reverse_iterator( Iter i );

(since C++14) (constexpr since C++17)

# Parameters

# Return value

std::reverse_iterator(i)

# Notes

Feature-test macro Value Std Feature __cpp_lib_make_reverse_iterator 201402L (C++14) std::make_reverse_iterator

# Example

#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>
 
int main()
{
    std::vector<int> v{1, 3, 10, 8, 22};
 
    std::sort(v.begin(), v.end());
    std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, ", "));
    std::cout << '\n';
 
    std::copy(std::make_reverse_iterator(v.end()),
              std::make_reverse_iterator(v.begin()),
              std::ostream_iterator<int>(std::cout, ", "));
    std::cout << '\n';
}

# See also