gpt4 book ai didi

c++ - 关于C++中 bool 数组的初始化

转载 作者:行者123 更新时间:2023-12-02 10:04:16 28 4
gpt4 key购买 nike

我在做一个编程问题,在那里我初始化了bool数组,如下所示:-

bool hash[n] = {0};

我提交了代码,但得到了错误的答案。我试图找出问题所在。然后,我将以上声明更改为:
bool hash[n];
fill(hash, hash + n, 0);

这给出了正确的答案。我不明白为什么 bool(boolean) 数组初始化不起作用。

出于好奇之后,我尝试了以下操作:-
bool hash[n] = {0};
fill(hash, hash + n, 0);

我提交了代码,但答案错误。这真让我震惊。有输入吗?

最佳答案

通过一些在线c++编译器,我能够重现此错误。 (其中一些接受C99之后的VLA,并且不会抛出任何错误)

写作

int n=20;
bool hash[n]={0};

抛出:

main.cpp:6:13: error: variable-sized object may not be initialized bool hash[n]={0}; ^ 1 error generated. compiler exit status 1



正如上面的评论中广泛讨论的,在运行时声明数组大小/长度不是标准C++的功能。

但是,这将起作用:

int n=20;
bool hash[n];

因为未指定/初始化数组元素。

为了重现性, here是产生这种情况的在线编译器的链接。

在这种情况下,请始终使用 vector 。

关于c++ - 关于C++中 bool 数组的初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61006821/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com