Namespaces
Variants

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

From cppreference.net
Ranges library
Range adaptors
class /*iterator*/ ;
(seit C++20)
( *nur zur Darstellung* )

Der Rückgabetyp von split_view::begin . Dies ist ein forward_iterator , daher wird erwartet, dass V mindestens forward_range modelliert.

Inhaltsverzeichnis

Mitgliedertypen

Mitgliedertyp Definition
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 >

Datenmitglieder

Mitglied Beschreibung
ranges:: split_view < V, Pattern > * parent_ (privat) ein Zeiger auf das übergeordnete split_view -Objekt
( Nur zur Darstellung verwendetes Mitgliedsobjekt* )
ranges:: iterator_t < V > cur_ (privat) ein Iterator in die zugrundeliegende view , der auf den Anfang eines aktuellen Teilbereichs zeigt
( Nur zur Darstellung verwendetes Mitgliedsobjekt* )
ranges:: subrange < ranges:: iterator_t < V >> next_ (privat) ein Teilbereich zur Position des Musters neben dem aktuellen Teilbereich
( Nur zur Darstellung verwendetes Mitgliedsobjekt* )
bool trailing_empty_ (privat) ein Flag, das angibt, ob ein leerer nachfolgender Teilbereich (falls vorhanden) erreicht wurde
( Nur zur Darstellung verwendetes Mitgliedsobjekt* )

Memberfunktionen

(Konstruktor)
(C++20)
konstruiert einen Iterator
(öffentliche Elementfunktion)
base
(C++20)
gibt den zugrundeliegenden Iterator zurück
(öffentliche Elementfunktion)
operator*
(C++20)
gibt den aktuellen Subbereich zurück
(öffentliche Elementfunktion)
operator++ operator++ (int)
(C++20)
erhöht den Iterator
(öffentliche Elementfunktion)

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

/*iterator*/ ( ) = default ;
(1) (seit C++20)
constexpr /*iterator*/ ( split_view & parent, ranges:: iterator_t < V > current,
ranges:: subrange < ranges:: iterator_t < V >> next ) ;
(2) (seit C++20)
1) Wertinitialisiert nicht-statische Datenelemente mit ihren Standard-Member-Initialisierern, das heißt
2) Initialisiert nicht-statische Datenelemente:

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

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

Entspricht return cur_ ; .

std::ranges::split_view:: iterator :: operator*

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

Entspricht return { cur_, next_. begin ( ) } ; .

std::ranges::split_view:: iterator :: operator++

constexpr /*iterator*/ & operator ++ ( ) ;
(1) (seit C++20)
constexpr void operator ++ ( int ) ;
(2) (seit C++20)
1) Entspricht
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) Entspricht auto tmp = * this ; ++* this ; return tmp ; .

Nicht-Member-Funktionen

operator==
(C++20)
vergleicht die zugrunde liegenden Iteratoren
(Funktion)

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

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

Entspricht return x. cur_ == y. cur_ and x. trailing_empty_ == y. trailing_empty_ ; .

Der != -Operator wird aus operator== synthetisiert .

Diese Funktion ist für gewöhnliche unqualifizierte oder qualifizierte Suche nicht sichtbar und kann nur durch argumentabhängige Suche gefunden werden, wenn std::ranges::split_view:: iterator eine assoziierte Klasse der Argumente ist.