Compartilhar via


Classe drop_view (Biblioteca Padrão C++)

Crie uma exibição que exclua os primeiros N elementos de um intervalo.

Sintaxe

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

Parâmetros de modelo

V
O tipo da exibição subjacente.

Ver características

Para obter uma descrição das entradas a seguir, consulte Exibir características da classe

Característica Descrição
Adaptador de gama views::drop
Intervalo subjacente Deve satisfazer output_range ou superior
Tipo de elemento O mesmo que o intervalo subjacente
Exibir categoria do iterador O mesmo que o intervalo subjacente
Tamanho Somente se o intervalo subjacente satisfizer sized_range
É const-iterável Somente se o intervalo subjacente for const iterável e satisfizer random_access_range e sized_range
Faixa comum Somente se o intervalo subjacente for um common_range
Alcance emprestado Somente se o intervalo subjacente satisfizer borrowed_range

Membros

Funções de membro Descrição
ConstrutoresC++20 Construa um drop_view.
baseC++20 Obtenha a visão subjacente.
beginC++20 Obtenha um iterador para o primeiro elemento.
endC++20 Pegue a sentinela no final da vista.
sizeC++20 Obtenha o número de elementos nesta visualização. O intervalo subjacente deve satisfazer sized_range.
Herdado de view_interface Descrição
backC++20 Obtenha o último elemento.
dataC++20 Obtenha um ponteiro para o primeiro elemento.
emptyC++20 Testar se o drop_view está vazio.
frontC++20 Obtenha o primeiro elemento.
operator[]C++20 Obter o elemento na posição especificada.
operator boolC++20 Teste se o drop_view não está vazio.

Requisitos

Cabeçalho: <ranges> (desde C++20)

Namespace: std::ranges

Opção do compilador: /std:c++20 ou posterior é necessária.

Construtores

Construir uma instância de um drop_view

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

Parâmetros de modelo

V
O tipo da exibição subjacente.

Valor retornado

Uma exibição do intervalo subjacente, excluindo o número especificado de elementos da frente.
Se você especificar mais elementos a serem descartados do que existem no intervalo subjacente, um será empty_view retornado.

Comentários

A melhor maneira de criar um drop_view é usando o adaptador de views::drop intervalo. Os adaptadores de intervalo são a maneira pretendida de criar classes de exibição. Os tipos de exibição são expostos caso você queira criar seu próprio tipo de exibição personalizado.

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

Obtém uma cópia da exibição subjacente.

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

Parâmetros

Nenhum.

Valor retornado

A visão subjacente.

begin

Obtenha um iterador para o primeiro elemento no 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>;

Parâmetros

Nenhum.

Valor retornado

Um iterador que aponta para o primeiro elemento no drop_view.

Imagem de um vetor com os elementos 10, 20 e 30. O primeiro elemento contém 10 e é rotulado begin(). O último elemento contém 30 e é rotulado como 'último elemento'. Uma caixa imaginária após o último elemento indica o sentinela e é rotulada como end().

end

Obtenha a sentinela no final do drop_view

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

Parâmetros

Nenhum.

Valor retornado

A sentinela que segue o último elemento no drop_view:

Imagem de um vetor com os elementos 10, 20 e 30. O primeiro elemento contém 10 e é rotulado begin(). O último elemento contém 30 e é rotulado como 'último elemento'. Uma caixa imaginária após o último elemento indica o sentinela e é rotulada como end().

size

Obter o número de elementos no drop_view.

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

Parâmetros

Nenhum.

Valor retornado

O número de elementos em drop_view.

Comentários

O intervalo subjacente deve satisfazer sized_range.

Confira também

<ranges>
drop adaptador de gama
take_while()
take_while_view
Ver aulas