std::basic_string<CharT,Traits,Allocator>::data
| (1) | ||
const CharT* data() const; |
(до C++11) | |
const CharT* data() const noexcept; |
(начиная с C++11) (до C++20) |
|
constexpr const CharT* data() const noexcept; |
(начиная с C++20) | |
| (2) | ||
CharT* data() noexcept; |
(начиная с C++17) (до C++20) |
|
constexpr CharT* data() noexcept; |
(начиная с 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(), имеет неопределённое поведение.Параметры
(нет)
Возвращаемое значение
Указатель на базовое хранилище символов.
|
|
(до C++11) |
|
|
(начиная с 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*) |
получает доступ к первому символу (public функция-элемент) |
(DR*) |
получает доступ к последнему символу (public функция-элемент) |
| возвращает немодифицируемую стандартную версию массива символов C строки (public функция-элемент) | |
(C++17) |
возвращает указатель на первый символ представления (public функция-элемент std::basic_string_view<CharT,Traits>)
|