Delen via


drop_view klasse (C++ Standaardbibliotheek)

Maak een weergave die de eerste N-elementen van een bereik uitsluit.

Syntaxis

template<ranges::view V>
class drop_view : public ranges::view_interface<drop_view<V>>;

Sjabloonparameters

V
Het type onderliggende weergave.

Kenmerken weergeven

Zie Klassekenmerken weergeven voor een beschrijving van de volgende vermeldingen

Karakteristiek Beschrijving
Bereikadapter views::drop
Onderliggend bereik Moet voldoen aan output_range of hoger
Elementtype Hetzelfde als het onderliggende bereik
Iteratorcategorie weergeven Hetzelfde als het onderliggende bereik
Formaat Alleen als het onderliggende bereik voldoet aan sized_range
Is const-iterable Alleen als het onderliggende bereik kan worden const itereerbaar en voldoet aan random_access_range en sized_range
Algemeen bereik Alleen als het onderliggende bereik een common_range
Geleend bereik Alleen als het onderliggende bereik voldoet aan borrowed_range

Leden

Lidfuncties Beschrijving
ConstructorsC++20 Maak een drop_view.
base C++20- De onderliggende weergave ophalen.
begin C++20- Haal een iterator naar het eerste element.
end C++20- Haal de sentinel aan het einde van de weergave op.
size C++20- Het aantal elementen in deze weergave ophalen. Het onderliggende bereik moet voldoen aan sized_range.
Overgenomen van view_interface Beschrijving
back C++20- Haal het laatste element op.
data C++20- Haal een aanwijzer naar het eerste element.
empty C++20- Test of het drop_view leeg is.
front C++20- Haal het eerste element op.
operator[] C++20- Haal het element op de opgegeven positie op.
operator bool C++20- Test of het drop_view niet leeg is.

Behoeften

Rubriek:<ranges> (sinds C++20)

Namespace:std::ranges

Compileroptie:/std:c++20 of hoger is vereist.

Constructeurs

Een exemplaar van een drop_view

template<ranges::view V>
class drop_view : public ranges::view_interface<drop_view<V>>

Sjabloonparameters

V
Het type onderliggende weergave.

Retourwaarde

Een weergave van het onderliggende bereik, met uitzondering van het opgegeven aantal elementen van de voorzijde.
Als u meer elementen opgeeft die moeten worden verwijderd dan in het onderliggende bereik, wordt er een empty_view geretourneerd.

Opmerkingen

De beste manier om een drop_view te maken is door gebruik te maken van de views::drop bereikadapter. Bereikadapters zijn de beoogde manier om weergaveklassen te maken. De weergavetypen worden weergegeven voor het geval u uw eigen aangepaste weergavetype wilt maken.

Voorbeeld: 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

Hiermee haalt u een kopie van de onderliggende weergave op.

// 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() &&;

Parameterwaarden

Geen.

Retourwaarde

De onderliggende weergave.

begin

Haal een iterator naar het eerste element in de 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>;

Parameterwaarden

Geen.

Retourwaarde

Een iterator die wijst naar het eerste element in de drop_view.

Afbeelding van een vector met de elementen 10, 20 en 30. Het eerste element bevat 10 en is gelabeld als begin(). Het laatste element bevat 30 en heeft het label 'laatste element'. Een imaginair vak na het laatste element geeft de sentinel aan en is gelabeld als end().

end

De sentinel aan het einde van de drop_view

constexpr auto end() requires (!Simple_view<V>);
constexpr auto end() const requires ranges::range<const V>;

Parameterwaarden

Geen.

Retourwaarde

De sentinel die het laatste element in het drop_viewvolgende element volgt:

Afbeelding van een vector met de elementen 10, 20 en 30. Het eerste element bevat 10 en is gelabeld als begin(). Het laatste element bevat 30 en heeft het label 'laatste element'. Een imaginair vak na het laatste element geeft de sentinel aan en is gelabeld als end().

size

Het aantal elementen in de drop_view.

constexpr auto size() requires ranges::sized_range<V>;
constexpr auto size() const requires ranges::sized_range<const V>;

Parameterwaarden

Geen.

Retourwaarde

Het aantal elementen in de drop_view.

Opmerkingen

Het onderliggende bereik moet voldoen aan sized_range.

Zie ook

<ranges>
drop bereikadapter
take_while()
take_while_view
Klassen weergeven