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

NAME
     std::ranges::adjacent_view::begin - std::ranges::adjacent_view::begin

Synopsis
	constexpr auto begin() requires (!__SimpleView<V>);	      (1) (since
     C++23)
	constexpr auto begin() const requires ranges::range<const V>; (2) (since
     C++23)

	Returns an iterator to the first element of the adjacent_view.

	Let base_ be the underlying view.

	1) Equivalent to return /*iterator*/<false>(ranges::begin(base_),
	ranges::end(base_));.
	2) Equivalent to return /*iterator*/<true>(ranges::begin(base_),
	ranges::end(base_));.

Parameters
	(none)

Return value
	Iterator to the first element.

Example
     // Run this code

      #include <ranges>
      #include <tuple>
      #include <type_traits>

      int main()
      {
	  constexpr static auto v = {'A', 'B', 'C', 'D', 'E'};

	  constexpr auto view = std::views::adjacent<3>(v);

	  constexpr auto tuple = *view.begin();

	  static_assert
	  (
	      std::is_same_v
	      <
		  decltype(tuple),
		  const std::tuple<char const&, char const&, char const&>
	      >
	  );

	  static_assert
	  (
	      std::get<0>(tuple) == 'A' &&
	      std::get<1>(tuple) == 'B' &&
	      std::get<2>(tuple) == 'C'
	  );
      }

See also
	end	      returns an iterator or a sentinel to the end
	(C++23)       (public member function)
	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)

home | help