只有第一个元素初始化为 1 [重复]
Posted
技术标签:
【中文标题】只有第一个元素初始化为 1 [重复]【英文标题】:Only first element init as 1 [duplicate] 【发布时间】:2019-10-07 09:31:53 【问题描述】:我有一个数组,例如:
int M[10] = 1 ;
我原以为M[0]~M[9]都会被1填满,但是当我打印出来的时候却没有,只有M[0]是1,其他都是0。
【问题讨论】:
【参考方案1】:这是一个常见的误解。你经常看到人们写这样的东西
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);
【讨论】:
如果我需要将所有元素初始化为 1 怎么办?需要一个 for 循环来分配它吗? 如果您需要将所有元素初始化为1
,您可以使用std::fill
或全部指定。抱歉,不是很清楚吗?您也可以使用 for
循环,但没有理由使用 std::fill
对不起,我没有注意到。很清楚。以上是关于只有第一个元素初始化为 1 [重复]的主要内容,如果未能解决你的问题,请参考以下文章