Espacios de nombres
Variantes
Acciones

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

De cppreference.com
< cpp‎ | ranges‎ | drop view
 
 
Biblioteca de rangos
Adaptadores de rangos
 
std::ranges::drop_view
Funciones miembro
drop_view::begin
(C++20)
Guías de deducción
 
constexpr auto begin()

  requires (!(__SimpleView<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)

Devuelve un iterador al primer elemento de la vista 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 de tiempo constante amortizada requerida por el concepto range, la sobrecarga (1) almacena en caché el resultado dentro del objeto drop_view para usarlo en llamadas posteriores.

Contenido

[editar] Parámetros

(Ninguno)

[editar] Valor de retorno

ranges::next(ranges::begin(base_), count_, ranges::end(base_)), where base_ es la vista subyacente, y count_ es el número de elementos a omitir.

[editar] Ejemplo

#include <algorithm>
#include <array>
#include <iostream>
#include <iterator>
#include <ranges>
 
int main()
{
    std::array hola{ 'H','o','l','a',',',' ','C','+','+','2','0','!' };
 
    std::ranges::for_each(hola, [](const char c){ std::cout << c; });
    std::cout << '\n';
 
    const auto c = std::distance(hola.begin(), std::ranges::find(hola, 'C'));
    auto cxx = std::ranges::drop_view{ hola, c };
    std::cout << "*drop_view::begin() == '" << *cxx.begin() << "'\n";
 
//  *cxx.begin() = 'c'; // no definido: 'views' a ser usadas por observadores
 
    for (char c : cxx) { std::cout << c; }
    std::cout << '\n';
}

Salida:

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

[editar] Informes de defectos

Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.

ID Aplicado a Comportamiento según lo publicado Comportamiento correcto
LWG 3482 C++20 La sobrecarga const puede llamarse con rangos sin tamaño. La sobrecarga const requiere sized_range.

[editar] Véase también

(C++20)
Devuelve un iterador o un centinela al final.
(función miembro pública) [editar]
Devuelve un iterador al principio de un rango.
(objeto punto de personalización) [editar]
Devuelve un iterador al final de un rango
(objeto punto de personalización) [editar]