Namespaces
Variants

std::ranges::slide_view<V>::end

Von de.cppreference.net
 
 
Ranges-Bibliothek
Range-Adaptoren
 
 
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 einen Sentinel oder einen Iterator zurück, der das Ende des slide_view darstellt.

1) Seien base_ und n_ die zugrundeliegenden Datenmember. Äquivalent zu:
  • Falls V das Konzept slide-caches-nothing modelliert, dann return iterator<false>(ranges::begin(base_) + ranges::range_difference_t<V>(size()), n_);.
  • Andernfalls, falls V das Konzept slide-caches-last modelliert, dann return iterator<false>(ranges::prev(ranges::end(base_), n_ - 1, ranges::begin(base_)), n_);.
  • Andernfalls, falls V das Konzept common_range modelliert, dann return iterator<false>(ranges::end(base_), ranges::end(base_), n_);.
  • Andernfalls return sentinel(ranges::end(base_));.
Falls V das Konzept slide-caches-last modelliert, zwischenspeichert diese Funktion das Ergebnis im cached_end_ zur Verwendung bei nachfolgenden Aufrufen. Dies ist notwendig, um die amortisierte konstante Zeitkomplexität bereitzustellen, die vom Konzept range gefordert wird.
2) Äquivalent zu begin() + ranges::range_difference_t<const V>(size()).

Parameter

(keine)

Rückgabewert

Ein Sentinel oder ein Iterator , der das Ende der slide_view darstellt.

Beispiel

#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 ]

Siehe auch

gibt einen Iterator zum Anfang zurück
(öffentliche Elementfunktion)
gibt einen Iterator zum Anfang eines Ranges zurück
(Anpassungspunktobjekt)
gibt einen Sentinel zurück, der das Ende eines Ranges anzeigt
(Anpassungspunktobjekt)