std::basic_string<CharT,Traits,Allocator>::data
const CharT* data() const;
|
(1) | (noexcept начиная с C++11) (constexpr начиная с C++20) |
CharT* data() noexcept;
|
(2) | (начиная с C++17) (constexpr начиная с C++20) |
Возвращает указатель на базовый массив, служащий хранилищем символов. Указатель таков, что диапазон
|
|
(до C++11) |
|
|
(начиная с C++11) |
является корректным, и значения в нём соответствуют значениям, хранящимся в строке.
|
Возвращаемый массив не обязан быть терминированным нулём. Если empty() возвращает |
(до C++11) |
|
Возвращаемый массив терминирован нулём, то есть Если empty() возвращает |
(начиная с C++11) |
Указатель, полученный из data(), может быть инвалидирован:
- Передачей неконстантной ссылки на строку любой функции стандартной библиотеки, или
- Вызовом неконстантных функций-элементов строки, за исключением
operator[](), at(), front(), back(), begin(), end(), rbegin(), rend().
data, приводит к неопределённому поведению.data() + size(), на любое значение, отличное от CharT(), приводит к неопределённому поведению.Параметры
(нет)
Возвращаемое значение
Указатель на базовое хранилище символов.
|
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())); }
` сохранены без изменений. C++ специфические термины и код не переводились.
Смотрите также
|
(
DR*
)
|
обращается к первому символу
(публичная функция-член) |
|
(
DR*
)
|
обращается к последнему символу
(публичная функция-член) |
|
возвращает неизменяемую версию строки в виде массива символов стандартного C
(публичная функция-член) |
|
|
возвращает указатель на первый символ представления
(публичная функция-член
std::basic_string_view<CharT,Traits>
)
|