Udostępnij za pośrednictwem


drop_view class (Standardowa biblioteka C++)

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)

Characteristic 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.
baseC++20 Pobierz widok bazowy.
beginC++20 Pobierz iterator do pierwszego elementu.
endC++20 Pobierz element sentinel na końcu widoku.
sizeC++20 Pobierz liczbę elementów w tym widoku. Zakres bazowy musi spełniać sized_rangewartość .
Dziedziczone z view_interface Opis
backC++20 Pobierz ostatni element.
dataC++20 Pobierz wskaźnik do pierwszego elementu.
emptyC++20 Sprawdź, czy element drop_view jest pusty.
frontC++20 Pobierz pierwszy element.
operator[]C++20 Pobierz element na określonej pozycji.
operator boolC++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.

Obraz wektora z elementami 10, 20 i 30. Pierwszy element zawiera wartość 10 i ma etykietę begin(). Ostatni element zawiera wartość 30 i ma etykietę

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:

Obraz wektora z elementami 10, 20 i 30. Pierwszy element zawiera wartość 10 i ma etykietę begin(). Ostatni element zawiera wartość 30 i ma etykietę

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