std::ranges::slide_view<V>::end
Depuis fr.cppreference.net
constexpr auto end()
requires (!(/*simple-view*/<V> && /*slide-caches-nothing*/<const V>));
|
(1) | (depuis C++23) |
constexpr auto end() const
requires /*slide-caches-nothing*/<const V>;
|
(2) | (depuis C++23) |
Renvoie une sentinelle ou un itérateur représentant la fin de la slide_view.
1) Soient
base_ et n_ les membres de données sous-jacents. Équivalent à :
- Si
Vmodéliseslide-caches-nothing,return iterator<false>(ranges::begin(base_) + ranges::range_difference_t<V>(size()), n_);. - Sinon, si
Vmodéliseslide-caches-last,return iterator<false>(ranges::prev(ranges::end(base_), n_ - 1, ranges::begin(base_)), n_);. - Sinon, si
Vmodélise common_range,return iterator<false>(ranges::end(base_), ranges::end(base_), n_);. - Sinon,
return sentinel(ranges::end(base_));.
Si
V modélise slide-caches-last, cette fonction met en cache le résultat dans la cached_end_ pour une utilisation lors d'appels ultérieurs. Ceci est nécessaire pour fournir la complexité constante amortie requise par la range.2) Équivalent à
begin() + ranges::range_difference_t<const V>(size()).Paramètres
(aucun)
Valeur de retour
Un
sentinel
ou un
iterator
représentant la fin de la
slide_view
.
Exemple
Exécuter ce code
#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"; } }
Sortie :
[ A B C ] [ B C D ]
Voir aussi
|
retourne un itérateur vers le début
(fonction membre publique) |
|
|
(C++20)
|
retourne un itérateur vers le début d'une plage
(objet point de personnalisation) |
|
(C++20)
|
retourne un sentinelle indiquant la fin d'une plage
(objet point de personnalisation) |