std::ranges::stride_view<V>:: begin
|
Range primitives | |||||||
|
Range concepts | |||||||||||||||||||
|
Range factories | |||||||||
|
Range adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
Helper items | |||||||||||||||||
|
|
Member functions | ||||
stride_view::begin
|
||||
Deduction guides | ||||
Iterator | ||||
Member functions | ||||
Non-member functions | ||||
constexpr
auto
begin
(
)
requires
(
!
__simple_view
<
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
stride_view
.
Overload (1) does not participate in overload resolution if V is a simple view (that is, if V and const V are views with the same iterator and sentinel types).
Parameters
(none)
Return value
Iterator to the first element of the view.
Example
A link to test: Compiler Explorer .
#include <print> #include <ranges> int main() { constexpr auto v = {'A', 'B', 'C'}; const auto x = v | std::views::stride(2); const auto y = v | std::views::reverse | std::views::stride(2); const auto z = v | std::views::stride(2) | std::views::reverse; std::println("{} {} {}", *x.begin(), *y.begin(), *z.begin()); }
Output:
A C C
See also
returns an iterator or a sentinel to the end
(public member function) |