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) |
является допустимым, и значения в нём соответствуют значениям, хранящимся в строке.
| Возвращаемый массив не обязательно завершается нулём. Если | (до 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/w/cpp/string/basic_string/data