std::basic_string<CharT,Traits,Allocator>::data
(1) | ||
const CharT* data()const; | (до C++11) | |
const CharT* data()constnoexcept; | (начиная с C++11) (до C++20) | |
constexprconst CharT* data()constnoexcept; | (начиная с 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::stringconst 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> ) |