Поделиться через


drop_view class (стандартная библиотека C++)

Создайте представление, которое исключает первые N-элементы диапазона.

Синтаксис

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

Параметры шаблона

V
Тип базового представления.

Просмотр характеристик

Описание следующих записей см. в разделе "Просмотр характеристик класса"

Characteristic Description
Адаптер диапазона views::drop
Базовый диапазон Должно соответствовать output_range или выше
Тип элемента Совпадает с базовым диапазоном
Просмотр категории итератора Совпадает с базовым диапазоном
Размер Только если базовый диапазон удовлетворяет sized_range
Is const-iterable Только в том случае, если базовый диапазон является const итерируемым и удовлетворяет random_access_rangesized_range
Общий диапазон Только если базовый диапазон является common_range
Заимствуемый диапазон Только если базовый диапазон удовлетворяет borrowed_range

Участники

Функции-члены Description
КонструкторыC++20 Создайте drop_view
baseC++20 Получите базовое представление.
beginC++20 Получите итератор к первому элементу.
endC++20 Получите sentinel в конце представления.
sizeC++20 Получите количество элементов в этом представлении. Базовый диапазон должен удовлетворять sized_range.
Наследуется от view_interface Description
backC++20 Получите последний элемент.
dataC++20 Получите указатель на первый элемент.
emptyC++20 Проверьте, является ли пустой drop_view .
frontC++20 Получите первый элемент.
operator[]C++20 Получите элемент в указанной позиции.
operator boolC++20 Проверьте, не является ли пустой drop_view .

Требования

Заголовок: <ranges> (с C++20)

Пространство имен: std::ranges

Параметр компилятора: /std:c++20 или более поздней версии требуется.

Конструкторы

Создание экземпляра объекта drop_view

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

Параметры шаблона

V
Тип базового представления.

Возвращаемое значение

Представление базового диапазона, за исключением указанного числа элементов с передней стороны.
Если указать больше элементов, которые нужно удалить, чем существует в базовом диапазоне, empty_view возвращается.

Замечания

Лучший способ создания drop_view — использовать views::drop адаптер диапазона. Адаптеры диапазона — это способ создания классов представления. Типы представлений предоставляются в случае, если вы хотите создать собственный тип пользовательского представления.

Пример: 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

Получает копию базового представления.

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

Параметры

Нет.

Возвращаемое значение

Базовое представление.

begin

Получите итератор к первому элементу в элементе 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>;

Параметры

Нет.

Возвращаемое значение

Итератор, указывающий на первый элемент в элементе drop_view.

Изображение вектора с элементами 10, 20 и 30. Первый элемент содержит 10 и помечен как begin(). Последний элемент содержит 30 и помечен как последний элемент. Мнимый прямоугольник после последнего элемента указывает sentinel и обозначает конец().

end

Получение sentinel в конце drop_view

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

Параметры

Нет.

Возвращаемое значение

Sentinel, следующий за последним элементом drop_viewв :

Изображение вектора с элементами 10, 20 и 30. Первый элемент содержит 10 и помечен как begin(). Последний элемент содержит 30 и помечен как последний элемент. Мнимый прямоугольник после последнего элемента указывает sentinel и обозначает конец().

size

Получение количества элементов в элементе drop_view.

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

Параметры

Нет.

Возвращаемое значение

Число элементов в массиве drop_view.

Замечания

Базовый диапазон должен удовлетворять sized_range.

См. также

<ranges>
drop адаптер диапазона
take_while()
take_while_view
Просмотр классов