std::ranges::drop_view<V>::begin
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.
Parámetros
(Ninguno)
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.
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!
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.
|
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) |