class template
std::ranges::split_view(C++20)
概要
指定した区切り文字(デリミタ)によって、入力文字範囲の分割を行うRangeアダプタ。
- (1): 入力の文字範囲を、その要素型の文字または文字列からなるパターンをデリミタとして分割し、切り出した文字列(部分Range)を要素とする新たなRangeに変換する
view
- (2):
split_view
を生成するRangeアダプタオブジェクト
入力範囲V
もデリミタPattern
も共にforward_range
(かつview
)であることしか求められていないため、実際には文字列の分割に限らず、任意のforward_range
をforward_range
によって表現されるパターンによって分割することができる。
Rangeコンセプト(split_view
そのもの)
borrowed |
sized |
output |
input |
forward |
bidirectional |
random_access |
contiguous |
common |
viewable |
view |
|
|
|
○ |
○ |
|
|
|
(1) |
○ |
○ |
Rangeコンセプト (split_view
の要素である、切り出した部分文字列を示す各部分Range)
borrowed |
sized |
output |
input |
forward |
bidirectional |
random_access |
contiguous |
common |
viewable |
view |
○ |
※ |
※ |
○ |
○ |
※ |
※ |
※ |
※ |
○ |
○ |
効果
- (2): 式
views::split(E, F)
の効果はsplit_view(E, F)
と等しい。
メンバ関数
名前 |
説明 |
対応バージョン |
(constructor) |
コンストラクタ |
C++20 |
base |
V の参照を取得する |
C++20 |
begin |
先頭を指すイテレータを取得する |
C++20 |
end |
番兵を取得する |
C++20 |
継承しているメンバ関数
名前 |
説明 |
対応バージョン |
empty |
Rangeが空かどうかを判定する |
C++20 |
operator bool |
Rangeが空でないかどうかを判定する |
C++20 |
front |
先頭要素への参照を取得する |
C++20 |
back |
末尾要素への参照を取得する |
C++20 |
cbegin |
定数イテレータを取得する |
C++23 |
cend |
定数イテレータ(番兵)を取得する |
C++23 |
推論補助
名前 |
説明 |
対応バージョン |
(deduction_guide) |
クラステンプレートの推論補助 |
C++20 |
例
パターンとしてC文字列を使うとき、ヌル文字を特別扱いしないため注意。
出力
hello
world
バージョン
言語
処理系
参照