Namespaces
Variants

std::ranges::cartesian_product_view<First, Vs...>::iterator

Von de.cppreference.net
 
 
Ranges-Bibliothek
Bereichsadapter
 
 
template< bool Const >
class /*iterator*/
(seit C++23)
(nur zur Veranschaulichung*)

Der Rückgabetyp von cartesian_product_view::begin, und von cartesian_product_view::end wenn die zugrunde liegende View V eine common_range.

Der Typ /*iterator*/<true> wird von den const-qualifizierten Überladungen zurückgegeben. Der Typ /*iterator*/<false> wird von den nicht-const-qualifizierten Überladungen zurückgegeben.

Mitgliedstypen

Mitglied Definition
Parent (privat) maybe-const <Const, ranges::cartesian_product_view>>
(nur zur Erläuterung Membertyp*)
iterator_category std::input_iterator_tag
iterator_concept
  • std::random_access_iterator_tag, falls /*cartesian-product-is-random-access*/<Const, First, Vs...> modelliert ist,
  • std::bidirectional_iterator_tag, falls /*cartesian-product-is-bidirectional*/<Const, First, Vs...> modelliert ist,
  • std::forward_iterator_tag, falls maybe-const <Const, First> modelliert forward_range,
  • std::input_iterator_tag, andernfalls
value_type
std::tuple<ranges::range_value_t</*maybe-const*/<Const, First>>,
           ranges::range_value_t</*maybe-const*/<Const, Vs>>...>;
reference
std::tuple<ranges::range_reference_t</*maybe-const*/<Const, First>>,
           ranges::range_reference_t</*maybe-const*/<Const, Vs>>...>;
difference_type der kleinste signed-integer-like Typ (falls vorhanden), der ausreichend breit ist, um das Produkt der maximalen Größen aller zugrunde liegenden Bereiche zu speichern

Datenmember

Mitglied Beschreibung
Parent* parent_ (privat) ein Zeiger auf das Elternobjekt cartesian_product_view
(exposition-only member object*)
std::tuple<ranges::iterator_t</*maybe-const*/<Const, First>>,

          ranges::iterator_t</*maybe-const*/<Const, Vs>>...>
     current_ (privat)

ein Tupel von Iteratoren zu den aktuellen zugrunde liegenden Elementen
(exposition-only member object*)

Memberfunktionen

Konstruiert einen Iterator
(öffentliche Elementfunktion)
greift auf das Element zu
(öffentliche Elementfunktion)
greift auf ein Element per Index zu
(öffentliche Elementfunktion)
bewegt den zugrundeliegenden Iterator vorwärts oder rückwärts
(öffentliche Elementfunktion)
bewegt den Iterator vorwärts
( Nur zur Darstellung verwendete Elementfunktion* )
bewegt den Iterator rückwärts
( Nur zur Darstellung verwendete Elementfunktion* )
gibt die Distanz zwischen zwei Iteratoren zurück
( Nur zur Darstellung verwendete Elementfunktion* )

Nicht-Member-Funktionen

vergleicht die zugrundeliegenden Iteratoren
(Funktion)
führt Iterator-Arithmetik durch
(Funktion)
(C++23)
konvertiert das Ergebnis der Dereferenzierung des zugrundeliegenden Iterators in seinen zugehörigen Rvalue-Referenztyp
(Funktion)
(C++23)
tauscht die zugrundeliegenden referenzierten Elemente
(Funktion)

Beispiel

Referenzen

  • C++23-Standard (ISO/IEC 14882:2024):
  • 26.7.32.3 Klassentemplate cartesian_product_view::iterator [range.cartesian.iterator]

Siehe auch