std::ranges::split_view<V,Pattern>::begin
De cppreference.com
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' '.' '.'
