仅第一个元素init为1

Only first element init as 1

本文关键字:init 元素 第一个      更新时间:2023-10-16

我有一个数组,例如:

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);