std::basic_string<CharT,Traits,Allocator>::data

来自cppreference.com
< cpp‎ | string‎ | basic string
 
 
 
std::basic_string
 
const CharT* data()const;
(1) (C++11 起为 noexcept)
(C++20 起为 constexpr)
CharT* data()noexcept;
(2) (C++17 起)
(C++20 起为 constexpr)

返回指向用作字符存储的底层数组的指针。此指针满足范围

[data()data()+ size())

(C++11 前)

[data()data()+ size()]

(C++11 起)

有效,且其中的值对应存储于字符串的值。

不要求返回的数组是空终止的。

empty() 返回 true,则指针指向不应解引用的非空指针。

(C++11 前)

返回的数组是空终止的,即 data()c_str() 进行同一功能。

empty() 返回 true,则指针指向单个空字符。

(C++11 起)

指向 data() 的指针可能因以下情况失效:

1) 通过 data 的 const 重载修改数组有未定义行为。
2) 修改存储于 data() + size() 的尾后空终止符为任何异于 CharT() 的值有未定义行为。

目录

[编辑]参数

(无)

[编辑]返回值

指向底层字符存储的指针。

[0size()) 中的每个 idata()[i]== operator[](i)

(C++11 前)

[0size()] 中的每个 idata()+ 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*)
访问首字符
(公开成员函数)[编辑]
(DR*)
访问最后的字符
(公开成员函数)[编辑]
返回字符串的不可修改的标准 C 字符数组版本
(公开成员函数)[编辑]
返回指向视图首字符的指针
(std::basic_string_view<CharT,Traits> 的公开成员函数)[编辑]
close