class template
std::ranges::enumerate_view(C++23)
namespace std::ranges {
template<view V>
requires range-with-movable-references<V>
class enumerate_view : public view_interface<enumerate_view<V>> { …… }; // (1)
namespace views {
inline constexpr /*unspecified*/ enumerate = /*unspecified*/; // (2)
}
}
概要
enumerate_view
はインデックスを付けるview
。
enumerate_view
の要素は、インデックスと元のRangeの要素からなるtuple
(tuple<range_difference_t<Base>,range_value_t<Base>>
)である。
- (1):
enumerate_view
のクラス定義
- (2):
enumerate_view
を生成するRangeアダプタオブジェクト
Rangeコンセプト
borrowed |
sized |
output |
input |
forward |
bidirectional |
random_access |
contiguous |
common |
viewable |
view |
|
※ |
※ |
〇 |
※ |
※ |
※ |
|
※ |
○ |
○ |
効果
- (2): 式
views::enumerate(E)
の効果はenumerate_view<views::all_t<decltype((E))>>(E)
と等しい
メンバ関数
名前 |
説明 |
対応バージョン |
(constructor) |
コンストラクタ |
C++23 |
base |
V の参照を取得する |
C++23 |
begin |
先頭を指すイテレータを取得する |
C++23 |
end |
番兵を取得する |
C++23 |
size |
要素数を取得する |
C++23 |
継承しているメンバ関数
推論補助
名前 |
説明 |
対応バージョン |
(deduction_guide) |
クラステンプレートの推論補助 |
C++23 |
例
出力
[(0, 'a'), (1, 'b'), (2, 'c')]
バージョン
言語
処理系
参照