std::basic_string<CharT,Traits,Allocator>:: data
|
const
CharT
*
data
(
)
const
;
|
(1) |
(C++11以降 noexcept)
(C++20以降 constexpr) |
|
CharT
*
data
(
)
noexcept
;
|
(2) |
(C++17以降)
(C++20以降 constexpr) |
文字ストレージとして機能する基盤となる配列へのポインタを返します。ポインタは、範囲が
|
|
(C++11まで) |
|
|
(C++11以降) |
有効であり、その中の値は文字列に格納された値に対応しています。
|
返される配列は null 終端である必要はありません。 empty() が true を返す場合、ポインタは非 null ポインタですが、デリファレンスすべきではありません。 |
(C++11 まで) |
|
返される配列は null 終端です。つまり、
empty() が true を返す場合、ポインタは単一の null 文字を指します。 |
(C++11 以降) |
data()
から取得したポインタが無効化される可能性がある要因:
- 文字列への非const参照を標準ライブラリ関数に渡すこと、または
-
文字列の非constメンバー関数を呼び出すこと(ただし
operator[]()、 at() 、 front() 、 back() 、 begin() 、 end() 、 rbegin() 、 rend() を除く)。
data
を通じてアクセスされる文字配列を変更することは未定義動作です。
目次 |
パラメータ
(なし)
戻り値
基礎となる文字ストレージへのポインタ。
|
data
(
)
[
i
]
==
operator
[
]
(
i
)
すべての
|
(C++11まで) |
|
data
(
)
+
i
==
std::
addressof
(
operator
[
]
(
i
)
)
すべての
|
(C++11以降) |
計算量
定数。
例
#include <algorithm> #include <cassert> #include <cstring> #include <string> int main() { std::string const s("Emplary"); assert(s.size() == std::strlen(s.data())); assert(std::equal(s.begin(), s.end(), s.data())); assert(std::equal(s.data(), s.data() + s.size(), s.begin())); assert('\0' == *(s.data() + s.size())); }
関連項目
|
(
DR*
)
|
最初の文字にアクセスする
(公開メンバ関数) |
|
(
DR*
)
|
最後の文字にアクセスする
(公開メンバ関数) |
|
文字列の変更不可能な標準C文字配列バージョンを返す
(公開メンバ関数) |
|
|
ビューの最初の文字へのポインタを返す
(
std::basic_string_view<CharT,Traits>
の公開メンバ関数)
|