std::ranges::drop_view<V>::begin
| constexpr auto begin() requires (!(/*simple-view*/<V> && |
(1) | (seit C++20) |
| constexpr auto begin() const requires ranges::random_access_range<const V> && |
(2) | (seit C++20) |
Gibt einen Iterator auf das erste Element der drop_view zurück, d. h. einen Iterator auf das N-te Element der zugrundeliegenden View oder auf das Ende der zugrundeliegenden View, wenn diese weniger als N Elemente hat.
Wenn V keine random_access_range oder keine sized_range ist, wird der Aufruf (1), um die vom range-Konzept geforderte amortisierte konstante Zeitkomplexität bereitzustellen, im zugrundeliegenden cache_-Objekt zwischengespeichert, um bei nachfolgenden Aufrufen verwendet zu werden.
Inhalt |
[edit] Rückgabewert
ranges::next(ranges::begin(base_), count_, ranges::end(base_)).
[edit] Beispiel
#include <array> #include <concepts> #include <iostream> #include <iterator> #include <ranges> void println(std::ranges::range auto const& range) { for (auto const& elem : range) std::cout << elem; std::cout << '\n'; } int main() { std::array hi{'H', 'e', 'l', 'l', 'o', ',', ' ', 'C', '+', '+', '2', '0', '!'}; println(hi); const auto pos = std::distance(hi.begin(), std::ranges::find(hi, 'C')); auto cxx = std::ranges::drop_view{hi, pos}; std::cout << "*drop_view::begin() == '" << *cxx.begin() << "'\n"; // *cxx.begin() = 'c'; // undefined: 'views' are to be used as observers println(cxx); }
Ausgabe
Hello, C++20! *drop_view::begin() == 'C' C++20!
[edit] 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 3482 | C++20 | die const-Überladung kann mit unsized ranges aufgerufen werden | die const-Überladung erfordert sized_range |
[edit] Siehe auch
| gibt einen Iterator oder Sentinel zum Ende 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) |