Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Utwórz widok, który wyklucza pierwsze N elementów zakresu.
Składnia
template<ranges::view V>
class drop_view : public ranges::view_interface<drop_view<V>>;
Parametry szablonu
V
Typ widoku bazowego.
Właściwości widoku
Opis poniższych wpisów można znaleźć w temacie View class characteristics (Wyświetlanie właściwości klas)
| Charakterystyka | opis |
|---|---|
| Adapter zakresu | views::drop |
| Zakres bazowy | Musi spełniać output_range lub wyższe |
| Typ elementu | Taki sam jak zakres bazowy |
| Wyświetl kategorię iteratora | Taki sam jak zakres bazowy |
| Wielkości | Tylko wtedy, gdy zakres bazowy spełnia sized_range |
Jest constiterowalne |
Tylko wtedy, gdy zakres bazowy jest const iterowalny i spełniony random_access_rangesized_range |
| Wspólny zakres | Tylko wtedy, gdy zakres bazowy to common_range |
| Pożyczony zakres | Tylko wtedy, gdy zakres bazowy spełnia borrowed_range |
Elementy członkowskie
| Funkcje składowe | Opis |
|---|---|
| KonstruktoryC++20 | Skonstruuj element drop_view. |
base
C++20 |
Pobierz widok bazowy. |
begin
C++20 |
Pobierz iterator do pierwszego elementu. |
end
C++20 |
Pobierz element sentinel na końcu widoku. |
size
C++20 |
Pobierz liczbę elementów w tym widoku. Zakres bazowy musi spełniać sized_rangewartość . |
Dziedziczone z view_interface |
Opis |
back
C++20 |
Pobierz ostatni element. |
data
C++20 |
Pobierz wskaźnik do pierwszego elementu. |
empty
C++20 |
Sprawdź, czy element drop_view jest pusty. |
front
C++20 |
Pobierz pierwszy element. |
operator[]
C++20 |
Pobierz element na określonej pozycji. |
operator bool
C++20 |
Sprawdź, czy element drop_view nie jest pusty. |
Wymagania
Nagłówek:<ranges> (od C++20)
Przestrzeń nazw: std::ranges
Opcja kompilatora:/std:c++20 lub nowsza jest wymagana.
Konstruktory
Konstruowanie wystąpienia obiektu drop_view
template<ranges::view V>
class drop_view : public ranges::view_interface<drop_view<V>>
Parametry szablonu
V
Typ widoku bazowego.
Wartość zwracana
Widok zakresu bazowego z wyłączeniem określonej liczby elementów z przodu.
Jeśli określisz więcej elementów do upuszczania niż istnieje w bazowym zakresie, zostanie zwrócona wartość .empty_view
Uwagi
Najlepszym sposobem utworzenia elementu drop_view jest użycie adaptera views::drop zakresu. Adaptery zakresów są zamierzonym sposobem tworzenia klas widoków. Typy widoków są widoczne w przypadku utworzenia własnego niestandardowego typu widoku.
Przykład: drop_view
// requires /std:c++20 or later
#include <ranges>
#include <iostream>
#include <vector>
int main()
{
std::vector<int> v{ 1, 2, 3, 4, 5 };
auto newView = std::views::drop(v, 3);
for (auto e : newView) // outputs 4 5
{
std::cout << e << ' ';
}
std::cout << '\n';
auto numbers = std::views::iota(0) | std::views::take(10); // generate a view of 10 integers
for (auto i : numbers | std::views::drop(5)) // use the '|' syntax to create a drop_view
{
std::cout << i << ' '; // outputs 5 6 7 8 9
}
}
4 5
5 6 7 8 9
base
Pobiera kopię widoku bazowego.
// Uses a copy constructor to return the underlying view
constexpr V base() const& requires std::copy_constructible<V>;
// Uses a move constructor to return the underlying view
constexpr V base() &&;
Parametry
Brak.
Wartość zwracana
Widok bazowy.
begin
Pobierz iterator do pierwszego elementu w pliku drop_view.
constexpr auto begin()
requires (!(Simple_view<V> && ranges::random_access_range<const V> && ranges::sized_range<const V>));
constexpr auto begin() const
requires ranges::random_access_range<const V> && ranges::sized_range<const V>;
Parametry
Brak.
Wartość zwracana
Iterator wskazujący pierwszy element w elemecie drop_view.
end
Pobierz sentinel na końcu drop_view
constexpr auto end() requires (!Simple_view<V>);
constexpr auto end() const requires ranges::range<const V>;
Parametry
Brak.
Wartość zwracana
Sentinel, który jest zgodny z ostatnim elementem w pliku drop_view:
size
Pobierz liczbę elementów w elemecie drop_view.
constexpr auto size() requires ranges::sized_range<V>;
constexpr auto size() const requires ranges::sized_range<const V>;
Parametry
Brak.
Wartość zwracana
Liczba elementów w elem.drop_view
Uwagi
Zakres bazowy musi spełniać sized_rangewartość .
Zobacz też
<ranges>
drop adapter zakresu
take_while()
take_while_view
Klasy widoków