std::ranges::drop_view<V>::drop_view
De cppreference.com
drop_view() requires std::default_initializable<V> = default;
|
(1) | (desde C++20) |
constexpr drop_view( V base, ranges::range_difference_t<V> count );
|
(2) | (desde C++20) |
Construye un objeto drop_view.
1) Constructor por defecto. Inicializa por valor la vista subyacente e inicializa la cuenta en 0. Después de la construcción,
base() devuelve una copia de V() y size() es igual al tamaño de la vista subyacente.2) Inicializa la vista subyacente con
std::move(base) y la cuenta con count. Después de la construcción, base() devuelve una copia de base y size() devuelve ranges::size(base) - count si el tamaño de base no es menor que count, o 0 de lo contrario.Parámetros
| base | - | La vista subyacente. |
| count | - | El número de elementos a omitir. |
Ejemplo
Ejecuta este código
#include <algorithm>
#include <array>
#include <iostream>
#include <iterator>
#include <ranges>
int main()
{
constexpr std::array hola{ 'H','o','l','a',',',' ','C','+','+','2','0' };
std::ranges::for_each(hola, [](const char c){ std::cout << c; });
std::cout << '\n';
constexpr auto n = std::distance(hola.cbegin(), std::ranges::find(hola, 'C'));
auto cxx = std::ranges::drop_view{ hola, n };
std::ranges::for_each(cxx, [](const char c){ std::cout << c; });
std::cout << '\n';
}
Salida:
Hola, C++20
C++20