Namespaces
Variants

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

ja.cppreference.net より
 
 
Ranges ライブラリ
範囲アダプタ
 
 
template< bool Const >
class /*iterator*/
(C++23)
(説明専用*)

の戻り値の型はcartesian_product_view::begin、およびcartesian_product_view::endの場合は、基になるビューVがcommon_range。

型/*iterator*/<true>は const 修飾されたオーバーロードによって返されます。型/*iterator*/<false>は非 const のオーバーロードによって返されます。

メンバ型

メンバ 定義
Parent (プライベート) maybe-const <Const, ranges::cartesian_product_view>>
(説明専用メンバ型*)
iterator_category std::input_iterator_tag
iterator_concept
  • std::random_access_iterator_tag、/*cartesian-product-is-random-access*/<Const, First, Vs...>がモデル化される、
  • std::bidirectional_iterator_tag、/*cartesian-product-is-bidirectional*/<Const, First, Vs...>がモデル化される、
  • std::forward_iterator_tag、maybe-const <Const, First>がforward_rangeをモデル化する,
  • std::input_iterator_tag、それ以外の場合
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 最小のsigned-integer-like型(存在する場合)、これは、すべての元となる範囲の最大サイズの積を格納するのに十分な幅を持ちます

データメンバ

メンバ 説明
Parent* parent_ (プライベート) 親オブジェクトへのポインタ cartesian_product_view
(説明専用のメンバオブジェクト*)
std::tuple<ranges::iterator_t</*maybe-const*/<Const, First>>,

          ranges::iterator_t</*maybe-const*/<Const, Vs>>...>
     current_ (プライベート)

現在の基礎となる要素へのイテレータのタプル
(説明専用のメンバオブジェクト*)

メンバー関数

イテレータを構築する
(public member function)
要素にアクセスする
(public member function)
インデックスによる要素へのアクセス
(public member function)
基盤となるイテレータを進めるまたは戻す
(public member function)
イテレータを進める
( 説明専用メンバ関数* )
イテレータを戻す
( 説明専用メンバ関数* )
2つのイテレータ間の距離を返す
( 説明専用メンバ関数* )

非メンバー関数

基底となるイテレータを比較する
(関数)
イテレータ演算を実行する
(関数)
(C++23)
基底イテレータのデリファレンス結果を関連する右辺値参照型にキャストする
(関数)
(C++23)
基底となる指し示された要素を交換する
(関数)

例

参考文献

  • C++23規格 (ISO/IEC 14882:2024):
  • 26.7.32.3 クラステンプレート cartesian_product_view::iterator [range.cartesian.iterator]

関連項目