# std::ranges::chunk_by_view<V,Pred>::iterator

From cppreference.com
< cpp‎ | ranges‎ | chunk by view

class /*iterator*/ |  | (since C++23)

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

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

### Data members

Typical implementations of /*iterator*/ hold three non-static data members:

- `parent_` of type `Parent` (see below), which is the pointer to the parent `chunk_by_view`,
- `current_` of type ranges::iterator_t<V>, which is the iterator to the begin of current chunk,
- `next_` of type ranges::iterator_t<V>, which is the iterator to the begin of next chunk, if present.

These names are for exposition only.

### Member types

Member type | Definition
`value_type` | ranges::subrange<ranges::iterator_t<V>>
`difference_type` | ranges::range_difference_t<V>
`iterator_category` | std::input_iterator_tag
`iterator_concept` | std::bidirectional_iterator_tag, if `V` models `bidirectional_range`, otherwise std::forward_iterator_tag.

### Member functions

(constructor) (C++23) | constructs an iterator (public member function)
operator* (C++23) | accesses the element (public member function)
operator++operator++(int)operator--operator--(int) (C++23) | advances or decrements the underlying iterators (public member function)

### Non-member functions

operator== (C++23) | compares the underlying iterators (function)

### Example

| This section is incomplete Reason: no example

### References

- C++23 standard (ISO/IEC 14882:2023):

  - 26.7.30.3 Class `chunk_by_view​::​iterator` [range.chunk.by.iter]

### See also

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/ranges/chunk_by_view/iterator&oldid=151011"