From cppreference.com
constexpr/*iterator*/begin();(since C++20)Returns an
to the first found subrange.
In order to provide the amortized constant time complexity required by the
concept, this function caches the result within the split_view (by means of
member) for use on subsequent calls.
Let
be the underlying data member. Equivalent to:
constexpr/*iterator*/begin(){if(!cached_begin_.has_value())cached_begin_=this->find_next(ranges::begin(base_));return{*this,ranges::begin(base_),cached_begin_.value()};}Return value
An
.
Complexity
Amortized O(1).
Example
Run this code
#include<iomanip>#include<iostream>#include<ranges>#include<string_view>intmain(){constexprstd::string_viewsentence{"Keep..moving..forward.."};constexprstd::string_viewdelim{".."};std::ranges::split_viewwords{sentence,delim};std::cout<<"begin(): "<<std::quoted(std::string_view{*words.begin()})<<"\nSubstrings: ";for(autoword:words)std::cout<<std::quoted(std::string_view(word))<<' ';std::ranges::split_viewletters{sentence,std::string_view{""}};std::cout<<"\nbegin(): "<<std::quoted(std::string_view{*letters.begin()})<<"\nLetters: ";for(autoletter:letters)std::cout<<std::string_view(letter)<<' ';std::cout<<'\n';}Output:
begin(): "Keep" Substrings: "Keep" "moving" "forward" "" begin(): "K" Letters: K e e p . . m o v i n g . . f o r w a r d . . See also
returns an iterator or a sentinel to the end
(public member function)
returns an iterator to the beginning
(public member function of std::ranges::lazy_split_view<V,Pattern>)
(C++20)
returns an iterator to the beginning of a range
(customization point object)