Namespaces
Variants
Views
Actions

std::ranges::adjacent_view<V,N>::iterator

From cppreference.com
 
 
Ranges library
Range access
Range conversions
(C++23)
Range primitives



Dangling iterator handling
Range concepts
Views

Factories




Adaptors
Range generators
Range adaptor objects
Range adaptor closure objects
Helper items
 
 
template< bool Const >
class /*iterator*/
(since C++23)

The return type of adjacent_view::begin, and of adjacent_view::end when the underlying view V is a common_range.

The type /*iterator*/<true> is returned by the const-qualified overloads. The type /*iterator*/<false> is returned by the non-const-qualified overloads.

The name of this class template (shown here as /*iterator*/) is unspecified.

Contents

[edit] Data members

Typical implementations of /*iterator*/ hold only one non-static data member current_ of type std::array<ranges::iterator_t<Base>, N>. The name is for exposition only.

[edit] Member types

Member type Definition
Base (private) const V if Const is true, otherwise V. The name is for exposition only.
iterator_category std::input_iterator_tag
iterator_concept
value_type std::tuple<__REPEAT(ranges::range_value_t<Base>, N)...>;
difference_type ranges::range_difference_t<Base>

[edit] Member functions

constructs an iterator
(public member function)
(C++23)
accesses the element
(public member function)
accesses an element by index
(public member function)
advances or decrements the underlying iterator
(public member function)

[edit] Non-member functions

compares the underlying iterators
(function)
performs iterator arithmetic
(function)
(C++23)
casts the result of dereferencing the underlying iterator to its associated rvalue reference type
(function)
(C++23)
swaps the objects pointed to by two underlying iterators
(function)

[edit] Example

[edit] References

  • C++23 standard (ISO/IEC 14882:2023):
  • 26.7.25.3 Class template adjacent_view::iterator [range.adjacent.iterator]

[edit] See also