小编sen*_*fen的帖子

如果需要归零数组,用一对大括号初始化 std::array 是否正确?

我想知道这个结构是否:

std::array<int, 10> array { };
Run Code Online (Sandbox Code Playgroud)

等价于:

std::array<int, 10> array { {  } };
Run Code Online (Sandbox Code Playgroud)

好吧,它们都编译并且给出相同的结果:

for (auto e : array) {
        std::cout << e << ", ";
}
Run Code Online (Sandbox Code Playgroud)

出去:

0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
Run Code Online (Sandbox Code Playgroud)

我知道要通过选定的值初始化 std::array 我必须使用双大括号,因为聚合初始化。但我不知道单括号的表现如何。所以,问题是:

在 C++11 中通过单花括号初始化结构体完全正确吗?(接下来结构体的所有字段都将被清零)

编辑:正如@dyp 指出的那样,我在帖子中的问题更为笼统。假设我的问题是关于仅包含琐碎元素的结构。

c++ arrays c++11

5
推荐指数
1
解决办法
1631
查看次数

标签 统计

arrays ×1

c++ ×1

c++11 ×1