std::ranges::stride_view<V>:: stride_view
From cppreference.net
<
cpp
|
ranges
|
stride view
C++
Ranges library
|
||||||||||||||||||||||
| Range primitives | |||||||
|
|||||||
| Range concepts | |||||||||||||||||||
|
|||||||||||||||||||
| Range factories | |||||||||
|
|||||||||
| Range adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||
| Helper items | |||||||||||||||||
|
|
||||||||||||||||
std::ranges::stride_view
| Member functions | ||||
|
stride_view::stride_view
|
||||
|
(C++26)
|
||||
| Deduction guides | ||||
| Iterator | ||||
| Member functions | ||||
| Non-member functions | ||||
|
constexpr
explicit
stride_view
(
V base,
ranges::
range_difference_t
<
V
>
stride
)
;
|
(desde C++23) | |
Construye un
stride_view
inicializando los miembros de datos subyacentes:
-
construir por movimiento la vista subyacente
base_con std :: move ( base ) , -
construir el
stride_con stride .
Si stride < 1 el comportamiento es indefinido.
Parámetros
| base | - | la vista de origen |
| stride | - | el valor de stride |
Ejemplo
Ejecutar este código
#include <algorithm> #include <iostream> #include <iterator> #include <ranges> #include <string_view> void print(std::string_view rem, auto v, std::string_view term = "\n") { std::cout << rem << ": "; std::ranges::copy(v, std::ostream_iterator<int>(std::cout, " ")); std::cout << term; }; int main() { auto source = std::views::iota(1, 10); print("source", source); for (int stride_value : std::views::iota(1, 6)) { auto strided_view = std::views::stride(source, stride_value); print("stride", std::views::single(stride_value), "-> "); print("result", strided_view); } }
Salida:
source: 1 2 3 4 5 6 7 8 9 stride: 1 -> result: 1 2 3 4 5 6 7 8 9 stride: 2 -> result: 1 3 5 7 9 stride: 3 -> result: 1 4 7 stride: 4 -> result: 1 5 9 stride: 5 -> result: 1 6