Namespaces
Variants
Views
Actions

std::reverse_iterator<Iter>::reverse_iterator

From cppreference.com
 
 
Iterator library
Iterator concepts
Iterator primitives
Algorithm concepts and utilities
Indirect callable concepts
Common algorithm requirements
Utilities
(C++20)
Iterator adaptors
Stream iterators
Iterator customization points
Iterator operations
(C++11)
(C++11)
Range access
(C++11)(C++14)
(C++11)(C++14)
(C++17)(C++20)
(C++14)(C++14)
(C++14)(C++14)
(C++17)
(C++17)
 
 
(1)
reverse_iterator();
(until C++17)
constexpr reverse_iterator();
(since C++17)
(2)
explicit reverse_iterator( iterator_type x );
(until C++17)
constexpr explicit reverse_iterator( iterator_type x );
(since C++17)
(3)
template< class U >
reverse_iterator( const reverse_iterator<U>& other );
(until C++17)
template< class U >
constexpr reverse_iterator( const reverse_iterator<U>& other );
(since C++17)

Constructs a new iterator adaptor.

1) Default constructor. The underlying iterator is value-initialized. Operations on the resulting iterator have defined behavior if and only if the corresponding operations on a value-initialized Iter also have defined behavior.
2) The underlying iterator is initialized with x.
3) The underlying iterator is initialized with that of other. This overload participates in overload resolution only if U is not the same type as Iter and std::convertible_to<const U&, Iter> is modeled (since C++20).

Contents

[edit] Parameters

x - iterator to adapt
other - iterator adaptor to copy

[edit] Example

[edit] Defect reports

The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

DR Applied to Behavior as published Correct behavior
LWG 3435 C++20 the converting constructor from another reverse_iterator was not constrained constrained

[edit] See also

assigns another iterator adaptor
(public member function) [edit]
creates a std::reverse_iterator of type inferred from the argument
(function template) [edit]