Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::ranges...view::begin(3)  C++ Standard Libary std::ranges...view::begin(3)

NAME
       std::ranges::split_view::begin -	std::ranges::split_view::begin

Synopsis
	  constexpr /*iterator*/ begin();  (since C++20)

	  Returns an iterator to the first found subrange.

	  In  order to provide the amortized constant time complexity required
       by the range
	  concept, this	function caches	the result within the  split_view  for
       use on subsequent
	  calls. 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()};
	}

	  Exposition  only  data members base_ and cached_begin_ are described
       here.

Parameters
	  (none)

Return value
	  An iterator.

Complexity
	  Amortized \(\scriptsize \mathcal{O}(1)\)O(1).

Example
       // Run this code

	#include <iomanip>
	#include <iostream>
	#include <ranges>
	#include <string_view>

	int main()
	{
	    constexpr std::string_view sentence{"Keep..moving..forward.."};
	    constexpr std::string_view delim{".."};
	    std::ranges::split_view words{sentence, delim};

	    std::cout	       <<	    "begin():		"	    <<
       std::quoted(std::string_view{*words.begin()})
		      << "\nSubstrings:	";
	    for	(std::string_view word : words)
		std::cout << std::quoted(word) << ' ';

	    std::ranges::split_view letters{sentence, std::string_view{""}};
	    std::cout  <<  "\nbegin(): " << std::quoted(std::string_view{*let-
       ters.begin()})
		      << "\nLetters: ";
	    for	(std::string_view letter : letters)
		std::cout << 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
	  end		returns	an iterator or a sentinel to the end
	  (C++20)	(public	member function)
	  begin		returns	an iterator to the beginning
	  (C++20)	       (public	      member	    function	    of
       std::ranges::lazy_split_view<V,Pattern>)

	  ranges::begin	returns	an iterator to the beginning of	a range
	  (C++20)	(customization point object)

http://cppreference.com		  2024.06.10	  std::ranges...view::begin(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::ranges::split_view::begin&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help