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() возвращает true, указатель является ненулевым указателем, который не следует разыменовывать. |
(до C++11) |
Возвращаемый массив завершается нулём, то есть Если empty() возвращает true, указатель указывает на один нулевой символ. |
(начиная с 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())); }
[править] Смотрите также
(DR*) |
получает доступ к первому символу (public функция-элемент) |
(DR*) |
получает доступ к последнему символу (public функция-элемент) |
возвращает немодифицируемую стандартную версию массива символов C строки (public функция-элемент) | |
(C++17) |
возвращает указатель на первый символ представления (public функция-элемент std::basic_string_view<CharT,Traits> )
|