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) |
является допустимым, а значения в нём соответствуют значениям, хранящимся в строке.
| Возвращаемый массив не обязательно завершается нулевым символом. Если | (до C++11) |
| Возвращаемый массив завершается нулевым символом, то есть Если | (начиная с 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*) | доступ к первому символу (открытая функция-член) |
|
(DR*) | доступ к последнему символу (открытая функция-член) |
| возвращает немодифицируемую версию строки в виде массива символов стандарта C (открытая функция-член) |
|
| возвращает указатель на первый символ представления (открытая функция-член std::basic_string_view<CharT,Traits>) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/string/basic_string/data