Namespaces
Variants

std::ranges::drop_view<V>:: begin

From cppreference.net
Ranges library
Range adaptors
constexpr auto begin ( )

requiere ( ! ( /*simple-view*/ < V > &&
ranges:: random_access_range < const V > &&

ranges:: sized_range < const V > ) ) ;
(1) (desde C++20)
constexpr auto begin ( ) const

requiere ranges:: random_access_range < const V > &&

ranges:: sized_range < const V > ;
(2) (desde C++20)

Devuelve un iterador al primer elemento del drop_view , es decir, un iterador al N ésimo elemento de la vista subyacente, o al final de la vista subyacente si tiene menos de N elementos.

Si V no es un random_access_range o un sized_range , para proporcionar la complejidad temporal amortizada constante requerida por el concepto range , la sobrecarga (1) almacena en caché el resultado dentro del objeto subyacente cache_ para su uso en llamadas posteriores.

Contenidos

Valor de retorno

ranges:: next ( ranges:: begin ( base_ ) , count_ , ranges:: end ( base_ ) ) .

Ejemplo

#include <array>
#include <concepts>
#include <iostream>
#include <iterator>
#include <ranges>
void println(std::ranges::range auto const& range)
{
    for (auto const& elem : range)
        std::cout << elem;
    std::cout << '\n';
}
int main()
{
    std::array hi{'H', 'e', 'l', 'l', 'o', ',', ' ', 'C', '+', '+', '2', '0', '!'};
    println(hi);
    const auto pos = std::distance(hi.begin(), std::ranges::find(hi, 'C'));
    auto cxx = std::ranges::drop_view{hi, pos};
    std::cout << "*drop_view::begin() == '" << *cxx.begin() << "'\n";
//  *cxx.begin() = 'c'; // undefined: 'views' are to be used as observers
    println(cxx);
}

Salida:

Hello, C++20!
*drop_view::begin() == 'C'
C++20!

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares publicados anteriormente de C++.

DR Aplicado a Comportamiento publicado Comportamiento correcto
LWG 3482 C++20 la sobrecarga const puede ser llamada con rangos sin tamaño la sobrecarga const requiere sized_range

Véase también

devuelve un iterador o un centinela al final
(función miembro pública)
devuelve un iterador al inicio de un rango
(objeto de punto de personalización)
devuelve un centinela que indica el final de un rango
(objeto de punto de personalización)