我有一个数组,例如:
int M[10] = { 1 };
我期望m [0] 〜m [9]都会填充1,但是当我将它们打印出来时,只有m [0]是1,其他是0。
这是一个常见的误解。通常,您会看到人们写这样的东西
int m[10] = { 0 };
"初始化所有元素到 0
";但是,实际上,仅将第一个元素初始化为 0
,其余的默认初始化(至0,这就是为什么起作用的原因(。真的,他们只能写int m[10] = {};
您遇到了相同的问题:您仅将第一个元素定为1
,然后将其余的默认为0
。您可以指定所有参数,也可以使用std::fill
:
int m[10] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
int n[10];
std::fill(std::begin(n), std::end(n), 1);