std::ranges::stride_view<V>::stride_view
Von de.cppreference.net
constexpr explicit stride_view( V base, ranges::range_difference_t<V> stride );
|
(seit C++23) | |
Erstellt eine stride_view, wobei die zugrundeliegenden Datenelemente initialisiert werden:
- Verschiebe-Konstruktion des zugrundeliegenden view
base_mitstd::move(base), - Konstruktion der
stride_mitstride.
Wenn stride < 1 ist das Verhalten undefiniert.
Parameter
| base | - | die Quellansicht |
| stride | - | der Stride-Wert |
Beispiel
Diesen Code ausführen
#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); } }
Ausgabe:
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