std::ranges::common_view<V>::end
Von cppreference.com
< cpp | ranges | common view
| constexpr auto end() requires (!/*simple-view*/<V>); |
(1) | (seit C++20) |
| constexpr auto end() const requires ranges::range<const V>; |
(2) | (seit C++20) |
1) Gibt einen Iterator zurück, der das Ende des
common_view darstellt, und zwar- ranges::begin(
base_) + ranges::distance(base_), wenn sowohl ranges::random_access_range<V> als auch ranges::sized_range<V> erfüllt sind, - std::common_iterator<ranges::iterator_t<V>, ranges::sentinel_t<V>>(ranges::end(
base_)) andernfalls.
2) Wie (1), aber
V ist const-qualifiziert.Inhalt |
[bearbeiten] Rückgabewert
Ein Iterator, der das Ende der zugrundeliegenden Ansicht darstellt.
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#include <iostream> #include <numeric> #include <ranges> int main() { constexpr int n{4}; constexpr auto v1 = std::views::iota(1) | std::views::take(n) | std::views::common ; constexpr auto v2 = std::views::iota(2) | std::views::take(n) ; const int product = std::inner_product(v1.begin(), v1.end(), v2.begin(), 0); std::cout << product << '\n'; }
Ausgabe
40
[bearbeiten] Fehlerberichte
Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| LWG 4012 | C++20 | Nicht-const-Überladung verpasste einfache Ansichtsprüfung | hinzugefügt |
[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) |