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 const iterowalne |
Tylko wtedy, gdy zakres bazowy jest const iterowalny i spełniony random_access_range sized_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_range wartość . |
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_range
wartość .
Zobacz też
<ranges>
drop
adapter zakresu
take_while()
take_while_view
Klasy widoków