std::ranges::slide_view<V>::end
Von cppreference.com
< cpp | ranges | slide view
| constexpr auto end() requires (!(/*simple-view*/<V> && /*slide-caches-nothing*/<const V>)); |
(1) | (seit C++23) |
| constexpr auto end() const requires /*slide-caches-nothing*/<const V>; |
(2) | (seit C++23) |
Gibt ein Sentinel oder einen Iterator zurück, der das Ende der slide_view darstellt.
1) Sei
base_ und n_ die zugrundeliegenden Datenmember. Äquivalent zu- Wenn V
slide-caches-nothingmodelliert, return iterator<false>(ranges::begin(base_) + ranges::range_difference_t<V>(size()), n_);. - Andernfalls, wenn V
slide-caches-lastmodelliert, return iterator<false>(ranges::prev(ranges::end(base_), n_ - 1, ranges::begin(base_)), n_);. - Andernfalls, wenn V
common_rangemodelliert, return iterator<false>(ranges::end(base_), ranges::end(base_), n_);. - Andernfalls, return sentinel(ranges::end(base_));.
Wenn V
slide-caches-last modelliert, speichert diese Funktion das Ergebnis innerhalb von cached_end_ zur Verwendung bei nachfolgenden Aufrufen. Dies ist notwendig, um die amortisierte konstante Zeitkomplexität bereitzustellen, die von der range gefordert wird.2) Äquivalent zu begin() + ranges::range_difference_t<const V>(size()).
Inhalt |
[bearbeiten] Parameter
(keine)
[bearbeiten] Rückgabewert
Ein Sentinel oder ein Iterator, der das Ende der slide_view darstellt.
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#include <iostream> #include <ranges> int main() { static constexpr auto source = {'A', 'B', 'C', 'D'}; for (const auto subrange: source | std::views::slide(3)) { std::cout << "[ "; for (auto it = subrange.begin(); it != subrange.end(); ++it) std::cout << *it << ' '; std::cout << "]\n"; } }
Ausgabe
[ A B C ] [ B C D ]
[bearbeiten] Siehe auch
| gibt einen Iterator zum Anfang zurück (öffentliche Member-Funktion) | |
| (C++20) |
gibt einen Iterator zum Anfang eines Ranges zurück (Customization Point Objekt) |
| (C++20) |
gibt ein Sentinel zurück, das das Ende eines Ranges anzeigt (Customization Point Objekt) |