std::ranges::drop_view<V>::begin
constexpr auto begin() requires (!(__SimpleView<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) |
(C++20) |
Devuelve un iterador al principio de un rango. (objeto punto de personalización) |
(C++20) |
Devuelve un iterador al final de un rango (objeto punto de personalización) |