Namespaces
Variants

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

De es.cppreference.net
 
 
Biblioteca de rangos
Adaptadores de rangos
 
 
constexpr auto begin()
    requires (!(/*simple-view*/<V> &&
                 ranges::random_access_range<const V> &&
                 ranges::sized_range<const V>));
(1) (desde C++20)
constexpr auto begin() const
    requires ranges::random_access_range<const V> &&
             ranges::sized_range<const V>;
(2) (desde C++20)

Retorna un iterador al primer elemento de la 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 constante amortizada requerida por el concepto range, la sobrecarga (1) almacena en caché el resultado dentro del objeto cache_ subyacente para su uso en llamadas posteriores.

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)