首页 >后端开发 >C++ >默认初始化如何与 C 11 中的 `std::array` 一起工作?

默认初始化如何与 C 11 中的 `std::array` 一起工作?

Patricia Arquette
Patricia Arquette原创
2024-11-01 06:13:31394浏览

How Does Default Initialization Work with `std::array` in C  11?

std::array 中的默认初始化

默认初始化是在未提供显式初始化程序时发生的初始化。对于 C 11 std::array,语法 std::array x;保证数组的所有元素都将被默认初始化。

根据 C 11 标准 (§8.5/11),任何没有显式初始化程序的对象都会被默认初始化。这包括 std::array 对象和传统的 C 样式数组。值得注意的是,默认初始化对非类、非数组类型没有影响,使其值不确定。

所有数组上的值初始化

虽然默认初始化留下非-类,非数组类型不确定,值初始化将元素设置为其默认值。在 C 11 中,通过为每个数组元素提供一个空的初始值设定项来实现值初始化:

int plain_int{};
int c_style_array[13]{};
std::array<int, 13> cxx_style_array{};

这将对数组的所有元素进行值初始化,从而导致 plain_int 和所有数组元素都初始化为零。

以上是默认初始化如何与 C 11 中的 `std::array` 一起工作?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn