Namespaces
Variants

std::ranges::split_view<V,Pattern>:: iterator

From cppreference.net
Ranges library
Range adaptors
class /*iterator*/ ;
(desde C++20)
( solo para exposición* )

El tipo de retorno de split_view::begin . Este es un forward_iterator , por lo que se espera que V modele al menos forward_range .

Contenidos

Tipos de miembros

Tipo de miembro Definición
iterator_concept std::forward_iterator_tag
iterator_category std::input_iterator_tag
value_type ranges:: subrange < ranges:: iterator_t < V >>
difference_type ranges:: range_difference_t < V >

Miembros de datos

Miembro Descripción
ranges:: split_view < V, Pattern > * parent_ (privado) un puntero al objeto split_view padre
( objeto miembro solo para exposición* )
ranges:: iterator_t < V > cur_ (privado) un iterador en la view subyacente que apunta al inicio del subrango actual
( objeto miembro solo para exposición* )
ranges:: subrange < ranges:: iterator_t < V >> next_ (privado) un subrango a la posición del patrón siguiente al subrango actual
( objeto miembro solo para exposición* )
bool trailing_empty_ (privado) un indicador que señala si se alcanzó un subrango vacío final (si existe)
( objeto miembro solo para exposición* )

Funciones miembro

(constructor)
(C++20)
construye un iterador
(función miembro pública)
base
(C++20)
devuelve el iterador subyacente
(función miembro pública)
operator*
(C++20)
devuelve el subrango actual
(función miembro pública)
operator++ operator++ (int)
(C++20)
avanza el iterador
(función miembro pública)

std::ranges::split_view:: iterator :: iterator

/*iterator*/ ( ) = default ;
(1) (desde C++20)
constexpr /*iterator*/ ( split_view & parent, ranges:: iterator_t < V > current,
ranges:: subrange < ranges:: iterator_t < V >> next ) ;
(2) (desde C++20)
1) Inicializa los miembros de datos no estáticos con sus inicializadores de miembro predeterminados, es decir:
2) Inicializa los miembros de datos no estáticos:

std::ranges::split_view:: iterator :: base

constexpr const ranges:: iterator_t < V > base ( ) const ;
(desde C++20)

Equivalente a return cur_ ; .

std::ranges::split_view:: iterator :: operador*

constexpr value_type operator * ( ) const ;
(desde C++20)

Equivalente a return { cur_, next_. begin ( ) } ; .

std::ranges::split_view:: iterator :: operador++

constexpr /*iterator*/ & operator ++ ( ) ;
(1) (desde C++20)
constexpr void operator ++ ( int ) ;
(2) (desde C++20)
1) Equivalente a
cur_ = next_. begin ( ) ;

if ( cur_ ! = ranges:: end ( parent_ - > base_ ) )
{
if ( cur_ = next_. end ( ) ; cur_ == ranges:: end ( parent_ - > base_ ) )
{
trailing_empty_ = true ;
next_ = { cur_, cur_ } ;
}
else
next_ = parent_ - > find_next ( cur_ ) ;
}
else
trailing_empty_ = false ;

return * this ;
2) Equivalente a auto tmp = * this ; ++* this ; return tmp ; .

Funciones no miembro

operator==
(C++20)
compara los iteradores subyacentes
(función)

operator== (std::ranges::split_view:: iterator , std::ranges::split_view:: iterator )

friend constexpr bool operator == ( const /*iterator*/ & x, const /*iterator*/ & y ) ;
(desde C++20)

Equivalente a return x. cur_ == y. cur_ and x. trailing_empty_ == y. trailing_empty_ ; .

El operador != es sintetizado a partir de operator== .

Esta función no es visible para la búsqueda no calificada ordinaria o la búsqueda calificada , y solo puede ser encontrada mediante búsqueda dependiente de argumentos cuando std::ranges::split_view:: iterator es una clase asociada de los argumentos.