std::ranges::split_view<V,Pattern>::begin
De cppreference.com
<tbody>
</tbody>
constexpr /*iterator*/ begin(); |
(desde C++20) | |
Devuelve un iterador (iterator) al primer subrango encontrado.
Para proporcionar la complejidad de tiempo constante amortizada requerida por el concepto range, esta función almacena en caché el resultado dentro de split_view para usarlo en llamadas posteriores. Equivalente a:
constexpr /*iterator*/ begin() {
if (!cached_begin_.has_value())
cached_begin_ = this->find_next(ranges::begin(base_));
return { *this, ranges::begin(base_), cached_begin_.value() };
}
Los datos miembro solo de exposición
base_ y
cached_begin_ se describen
aquí.
Parámetros
(Ninguno)
Valor de retorno
Un iterador (iterator).
Complejidad
Amortizada O(1).
Ejemplo
Un enlace para verificar el código: wandbox
Ejecuta este código
#include <iostream>
#include <iomanip>
#include <ranges>
#include <string_view>
int main()
{
constexpr std::string_view enunciado{ "Seguir..hacia..adelante.." };
constexpr std::string_view delim{ ".." };
std::ranges::split_view palabras{ enunciado, delim };
std::cout << "begin(): " << std::quoted( std::string_view{*palabras.begin()} )
<< "\nSubcadenas: ";
for (std::string_view palabra: palabras)
std::cout << std::quoted(palabra) << ' ';
std::ranges::split_view letras{ enunciado, std::string_view{""} };
std::cout << "\nbegin(): " << std::quoted( std::string_view{*letras.begin()} )
<< "\nLetras: ";
for (std::string_view letra: letras)
std::cout << std::quoted(letra, '\'') << ' ';
}
Salida:
begin(): "Seguir"
Subcadenas: "Seguir" "hacia" "adelante" ""
begin(): "S"
Letras: 'S' 'e' 'g' 'u' 'i' 'r' '.' '.' 'h' 'a' 'c' 'i' 'a' '.' '.' 'a' 'd' 'e' 'l' 'a' 'n' 't' 'e' '.' '.'
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 comienzo. (función miembro pública de std::ranges::lazy_split_view<V,Pattern>)
|
(C++20) |
Devuelve un iterador al principio de un rango. (objeto punto de personalización) |