std::array<int,4> myInts;
std::array<bool,2> myBools;
myInts
和的元素myBools
可以假定为假和 0,还是应该fill
手动设置数组?
std::array<int,4> myInts;
std::array<bool,2> myBools;
myInts
和的元素myBools
可以假定为假和 0,还是应该fill
手动设置数组?
元素将被设置为随机值,但您可以确保像这样初始化它们:
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} };
另一方面,这种情况符合大括号省略的条件,因此额外的大括号集不是强制性的。