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

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

constexpr __iterator begin(); |  | (since C++23)

Returns an iterator to the first element of the `chunk_by_view`.

Equivalent to:

    ranges::iterator_t<V> iter;

    if (begin_.has_value())
        iter = begin_.value();
    else
    {
        iter = __find_next(ranges::begin(base()));
        begin_ = iter; // caching
    }

    return __iterator(*this, ranges::begin(base()), iter);

The behavior is undefined if the underlying predicate `pred_` does not contain a value.

### Parameters

(none)

### Return value

Iterator to the first element.

### Notes

In order to provide the amortized constant-time complexity required by the `range` concept, this function caches the result within the data member `begin_` (the name is for exposition only) for use on subsequent calls.

### Example

| This section is incomplete Reason: no example

### See also

end (C++23) | returns an iterator or a sentinel to the end (public member function)
ranges::begin (C++20) | returns an iterator to the beginning of a range (customization point object)

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