Dela via


drop_view class (C++ Standard Library)

Skapa en vy som exkluderar de första N-elementen i ett intervall.

Syntax

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

Mallparametrar

V
Typen av underliggande vy.

Visa egenskaper

En beskrivning av följande poster finns i Visa klassegenskaper

Karakteristisk Beskrivning
Intervalladapter views::drop
Underliggande intervall Måste uppfylla output_range eller högre
Elementtyp Samma som det underliggande intervallet
Visa iteratorkategori Samma som det underliggande intervallet
Storlek Endast om det underliggande intervallet uppfyller sized_range
Är const-iterable Endast om det underliggande intervallet är const iterbart och uppfyller random_access_range och sized_range
Gemensamt intervall Endast om det underliggande intervallet är ett common_range
Lånat intervall Endast om det underliggande intervallet uppfyller borrowed_range

Medlemmar

Medlemsfunktioner Beskrivning
KonstruktorerC++20 Konstruera en drop_view.
base C++20 Hämta den underliggande vyn.
begin C++20 Hämta en iterator till det första elementet.
end C++20 Hämta sentinel i slutet av vyn.
size C++20 Hämta antalet element i den här vyn. Det underliggande intervallet måste uppfylla sized_range.
Ärvd från view_interface Beskrivning
back C++20 Hämta det sista elementet.
data C++20 Hämta en pekare till det första elementet.
empty C++20 Testa om är drop_view tom.
front C++20 Hämta det första elementet.
operator[] C++20 Hämta elementet på den angivna positionen.
operator bool C++20 Testa om är drop_view inte tom.

Kravspecifikation

Rubrik:<ranges> (sedan C++20)

Namespace:std::ranges

Kompilatoralternativ:/std:c++20 eller senare krävs.

Konstruktörer

Konstruera en instans av en drop_view

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

Mallparametrar

V
Typen av underliggande vy.

Returvärde

En vy över det underliggande intervallet, exklusive det angivna antalet element framifrån.
Om du anger fler element att släppa än vad som finns i det underliggande intervallet returneras ett empty_view .

Anmärkningar

Det bästa sättet att skapa en drop_view är genom att använda views::drop intervalladaptern. Intervalladapter är det avsedda sättet att skapa visningsklasser. Vytyperna exponeras om du vill skapa en egen anpassad vytyp.

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

Hämtar en kopia av den underliggande vyn.

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

Parameterar

Ingen.

Returvärde

Den underliggande vyn.

begin

Hämta en iterator till det första elementet i 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>;

Parameterar

Ingen.

Returvärde

En iterator som pekar på det första elementet i drop_view.

Bild av en vektor med elementen 10, 20 och 30. Det första elementet innehåller 10 och är märkt begin(). Det sista elementet innehåller 30 och är märkt med

end

Hämta sentinel i slutet av drop_view

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

Parameterar

Ingen.

Returvärde

Sentinel som följer det sista elementet i drop_view:

Bild av en vektor med elementen 10, 20 och 30. Det första elementet innehåller 10 och är märkt begin(). Det sista elementet innehåller 30 och är märkt med

size

Hämta antalet element i drop_view.

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

Parameterar

Ingen.

Returvärde

Antalet element i drop_view.

Anmärkningar

Det underliggande intervallet måste uppfylla sized_range.

Se även

<ranges>
drop intervalladapter
take_while()
take_while_view
Visa klasser