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_range sized_range |
Общий диапазон | Только если базовый диапазон является common_range |
Заимствуемый диапазон | Только если базовый диапазон удовлетворяет borrowed_range |
Участники
Функции-члены | Description |
---|---|
КонструкторыC++20 | Создайте drop_view |
base C++20 |
Получите базовое представление. |
begin C++20 |
Получите итератор к первому элементу. |
end C++20 |
Получите sentinel в конце представления. |
size C++20 |
Получите количество элементов в этом представлении. Базовый диапазон должен удовлетворять sized_range . |
Наследуется от view_interface |
Description |
back C++20 |
Получите последний элемент. |
data C++20 |
Получите указатель на первый элемент. |
empty C++20 |
Проверьте, является ли пустой drop_view . |
front C++20 |
Получите первый элемент. |
operator[] C++20 |
Получите элемент в указанной позиции. |
operator bool C++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
.
end
Получение sentinel в конце drop_view
constexpr auto end() requires (!Simple_view<V>);
constexpr auto end() const requires ranges::range<const V>;
Параметры
Нет.
Возвращаемое значение
Sentinel, следующий за последним элементом drop_view
в :
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
Просмотр классов