constexpr basic_string_view<charT, traits>
subview(size_type pos = 0,
size_type n = npos) const;
概要
部分文字列を取得する。
本関数はsubstrと全く同じ動作である。std::stringとインターフェースを揃える目的で追加された。
戻り値
指定された位置posからn文字からなる部分文字列を構築して返す。
size() - posとnうち、小さい方をrlenとし、basic_string_view(data() + pos, rlen)を返す。
例外
pos > size()の場合、std::out_of_range例外を送出する。
例
#include <iostream>
#include <string_view>
int main()
{
std::string_view sv = "This is a pen";
std::string_view ret1 = sv.subview(5); // 5番目から最後までの文字列を取得
std::string_view ret2 = sv.subview(5, 2); // 5番目から2文字の文字列を取得
std::cout << "1 : [" << ret1 << ']' << std::endl;
std::cout << "2 : [" << ret2 << ']' << std::endl;
// subviewはデータを切り取るのではなく、参照位置と参照サイズを変更するだけなので、
// 生ポインタを介せば全体の文字列を復元することはできる。
const char* ret3 = ret1.data() - 5;
std::cout << "3 : [" << ret3 << ']' << std::endl;
}
出力
1 : [is a pen]
2 : [is]
3 : [This is a pen]
バージョン
言語
- C++26
処理系
- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: ??