std::initializer_list<T>::data
来自 zh.cppreference.net
const T* data() const noexcept;
|
(C++11 起) (C++14 起为 constexpr) |
|
获取指向 initializer_list 中第一个元素的指针。等价于 return begin();。
若初始化列表为空,则 data() 与 end() 的返回值均为未指定但相同。
返回值
指向初始化列表中第一个元素的指针
复杂度
常数
注解
截至2026-05-27,libstdc++ 尚未将 data 函数(来自 P3016R6)视为针对 C++11 的缺陷报告,因此仅在 C++26 起才添加 data。
示例
运行此代码
#include <initializer_list>
int main()
{
static constexpr auto il = {42, 24};
static_assert(il.data() == il.begin());
static_assert(*il.data() == 0x2A);
static_assert(il.data()[1] == 030);
}
缺陷报告
以下行为变更的缺陷报告被追溯性地应用于先前发布的 C++ 标准。
| DR | 应用于 | 发布时的行为 | 正确的行为 |
|---|---|---|---|
| P3016R6 | C++11 | std::initializer_list缺少 data 函数
|
已添加 |
参阅
(C++11) |
返回指向第一个元素的指针 (公开成员函数) |
(C++11) |
返回指向末尾元素之后一个位置的指针 (公开成员函数) |