gpt4 book ai didi

c++ - 是否必须重置 std::array 元素?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:02:27 28 4
gpt4 key购买 nike

std::array<int,4> myInts;
std::array<bool,2> myBools;

可以将 myIntsmyBools 的元素假设为 false 和 0,还是我应该手动填充数组?

最佳答案

元素将被设置为随机值,但您可以确保像这样对它们进行值初始化:

std::array<int,4> myInts{}; // all zeroes
std::array<bool,2> myBools{}; // all false

所以元素不必重新设置,它们可以被初始化为特定的值。您还可以将元素初始化为不同的值:

std::array<int,4> myInts{1,2,33,44};
std::array<bool,2> myBools{true, false};

如果你的元素少于初始化列表中数组的大小,那么缺失的元素将被初始化为零:

std::array<int,4> myInts{1,2}; // array contains 1,2,0,0

注意 该标准指定 std::array 是一个集合,并且有一些示例代码显示它实现为具有数组数据成员。它声称这只是为了强调该类型是一个聚合,但是如果使用此实现(并且 GCC 使用它)那么您将需要一组额外的大括号,因为您正在 std::array 中初始化数组:

std::array<int,4> myInts{ {1,2,33,44} };

另一方面,这种情况符合大括号省略的条件,因此额外的一组大括号不是强制性的。

关于c++ - 是否必须重置 std::array 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11959935/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com