名前空間
変種
操作

std::basic_string_view

提供: cppreference.com
< cpp‎ | string
 
 
 
 
ヘッダ <string_view> で定義
template<

    class CharT,
    class Traits = std::char_traits<CharT>

> class basic_string_view;
(C++17以上)

クラステンプレート basic_string_viewchar ライクなオブジェクトの const な隣接する並びを参照するオブジェクトを表現します。 並びの最初の要素は0の位置です。

一般的な実装では2個のメンバ、 const な CharT へのポインタとサイズのみを保持します。

一般的な文字型に対していくつかの typedef が提供されます。

ヘッダ <string_view> で定義
定義
std::string_view std::basic_string_view<char>
std::wstring_view std::basic_string_view<wchar_t>
std::u8string_view std::basic_string_view<char8_t> (C++20)
std::u16string_view std::basic_string_view<char16_t>
std::u32string_view std::basic_string_view<char32_t>

目次

[編集] テンプレート引数

CharT - 文字型
Traits - 文字型の操作を指定する CharTraits クラス。 basic_string の場合と同様に、 Traits::char_typeCharT と同じ型でなければならず、そうでなければプログラムは ill-formed です。

[編集] メンバ型

メンバ型 定義
traits_type Traits
value_type CharT
pointer CharT*
const_pointer const CharT*
reference CharT&
const_reference const CharT&
const_iterator value_typeCharT である処理系定義の const な LegacyRandomAccessIteratorConstexprIterator (C++20以上) かつ LegacyContiguousIterator
iterator const_iterator
const_reverse_iterator std::reverse_iterator<const_iterator>
reverse_iterator const_reverse_iterator
size_type std::size_t
difference_type std::ptrdiff_t

ノート: 文字列ビューは const な文字型へのビューであるため、 iteratorconst_iterator は同じ型です。

Container のイテレータ型に対するすべての要件が basic_string_viewiterator および const_iterator 型にも同様に適用されます。

[編集] メンバ関数

basic_string_view を構築します
(パブリックメンバ関数) [edit]
ビューを代入します
(パブリックメンバ関数) [edit]
イテレータ
先頭を指すイテレータを返します
(パブリックメンバ関数) [edit]
終端を指すイテレータを返します
(パブリックメンバ関数) [edit]
先頭を指す逆イテレータを返します
(パブリックメンバ関数) [edit]
終端を指す逆イテレータを返します
(パブリックメンバ関数) [edit]
要素アクセス
指定された文字にアクセスします
(パブリックメンバ関数) [edit]
境界チェック付きで指定された文字にアクセスします
(パブリックメンバ関数) [edit]
最初の文字にアクセスします
(パブリックメンバ関数) [edit]
最後の文字にアクセスします
(パブリックメンバ関数) [edit]
ビューの最初の文字へのポインタを返します
(パブリックメンバ関数) [edit]
容量
文字数を返します
(パブリックメンバ関数) [edit]
最大文字数を返します
(パブリックメンバ関数) [edit]
ビューが空かどうか調べます
(パブリックメンバ関数) [edit]
変更
始点を前進させることによってビューを縮小させます
(パブリックメンバ関数) [edit]
終点を後退させるとこによってビューを縮小させます
(パブリックメンバ関数) [edit]
内容を交換します
(パブリックメンバ関数) [edit]
操作
文字をコピーします
(パブリックメンバ関数) [edit]
部分文字列を返します
(パブリックメンバ関数) [edit]
2つのビューを比較します
(パブリックメンバ関数) [edit]
文字列ビューが指定された接頭辞で始まるか調べます
(パブリックメンバ関数) [edit]
(C++20)
文字列ビューが指定された接尾辞で終わるか調べます
(パブリックメンバ関数) [edit]
ビュー内の文字を探します
(パブリックメンバ関数) [edit]
部分文字列が現れる最後の位置を探します
(パブリックメンバ関数) [edit]
文字が現れる最初の位置を探します
(パブリックメンバ関数) [edit]
文字が現れる最後の位置を探します
(パブリックメンバ関数) [edit]
文字が現れない最初の位置を探します
(パブリックメンバ関数) [edit]
文字が現れない最後の位置を探します
(パブリックメンバ関数) [edit]

定数

[静的]
特別な値。 正確な意味は文脈によって異なります
(パブリック静的メンバ定数) [edit]

[編集] 非メンバ関数

(C++20で削除)(C++20で削除)(C++20で削除)(C++20で削除)(C++20で削除)(C++20)
2つの文字列ビューを辞書的に比較します
(関数テンプレート) [edit]
入出力
文字列ビューのストリーム出力を行います
(関数テンプレート) [edit]

[編集] リテラル

名前空間 std::literals::string_view_literals で定義
文字配列リテラルの文字列ビューを作成します
(関数) [edit]

[編集] ヘルパークラス

文字列ビューに対するハッシュサポート
(クラステンプレートの特殊化) [edit]

[編集] ヘルパーテンプレート

template<class CharT, class Traits>
inline constexpr bool ranges::enable_borrowed_range<std::basic_string_view<CharT, Traits>> = true;
(C++20以上)

std::ranges::enable_borrowed_range のこの特殊化は basic_string_viewborrowed_range を満たせるようにします。

template<class CharT, class Traits>
inline constexpr bool ranges::enable_view<std::basic_string_view<CharT, Traits>> = true;
(C++20以上)

std::ranges::enable_view のこの特殊化は basic_string_viewview を満たせるようにします。

[編集] 推定ガイド(C++20以上)

[編集] ノート

std::string_view が参照先の文字配列より長生きしないことを保証するのはプログラマの責任です。

std::string_view good("a string literal");   // OK、 good は静的な配列を指します。
std::string_view bad("a temporary string"s); // bad はダングリングです。