Namespaces
Variants
Actions

std::move_iterator

From cppreference.com
< cpp‎ | iterator
 
 
Iterator library
Iterator concepts
Iterator primitives
Algorithm concepts and utilities
Indirect callable concepts
Common algorithm requirements
(C++20)
(C++20)
(C++20)
Utilities
(C++20)
Iterator adaptors
Range access
(C++11)(C++14)
(C++14)(C++14)  
(C++11)(C++14)
(C++14)(C++14)  
(C++17)(C++20)
(C++17)
(C++17)
 
 
Defined in header <iterator>
template< class Iter >
class move_iterator;
(since C++11)

std::move_iterator is an iterator adaptor which behaves exactly like the underlying iterator (which must be at least a LegacyInputIterator or model input_iterator(since C++20), or stronger iterator concept(since C++23)), except that dereferencing converts the value returned by the underlying iterator into an rvalue. If this iterator is used as an input iterator, the effect is that the values are moved from, rather than copied from.

Contents

[edit] Nested types

Type Definition
iterator_type Iter
iterator_category std::iterator_traits<Iter>::iterator_category
value_type std::iterator_traits<Iter>::value_type
difference_type std::iterator_traits<Iter>::difference_type
pointer Iter
reference
(until C++20)
Type Definition
iterator_type Iter
iterator_category
(conditionally present)
iterator_concept

std::input_iterator_tag

(until C++23)
(since C++23)
value_type std::iter_value_t<Iter>
difference_type std::iter_difference_t<Iter>
pointer Iter
reference std::iter_rvalue_reference_t<Iter>
(since C++20)

[edit] Data members

Member Description
Iter current the underlying iterator
(exposition-only member object*)

[edit] Member functions

constructs a new move_iterator
(public member function) [edit]
assigns another move_iterator
(public member function) [edit]
accesses the underlying iterator
(public member function) [edit]
accesses the pointed-to element
(public member function) [edit]
accesses an element by index
(public member function) [edit]
advances or decrements the move_iterator
(public member function)