C++ Notes: Array Initialization有一个很好的数组初始化列表。我有一个
int array[100] = {-1};
期望它充满 -1 但不是,只有第一个值是,其余的都是 0 与随机值混合。
代码
int array[100] = {0};
工作正常并将每个元素设置为 0。
我在这里遗漏了什么。如果值不为零,就不能初始化它吗?
还有 2:默认初始化(如上)是否比通常循环遍历整个数组并赋值更快,还是做同样的事情?
最佳答案
使用您使用的语法,
int array[100] = {-1};
说“将第一个元素设置为 -1
,其余元素设置为 0
”,因为所有省略的元素都设置为 0
.
在 C++ 中,将它们全部设置为 -1
, 你可以使用类似 std::fill_n
(来自 <algorithm>
):
std::fill_n(array, 100, -1);
在可移植 C 中,您必须滚动自己的循环。有编译器扩展,或者如果可以接受的话,您可以依赖实现定义的行为作为捷径。
关于c++ - 将数组的所有元素初始化为C++中的一个默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1065774/