如何将数组的所有元素更改为特定值?

use*_*967 1 c++ arrays

例如,我有一个这样的数组:

bool log[100000]
Run Code Online (Sandbox Code Playgroud)

我有循环,我想将log中所有元素的值设置为True.换句话说,我想擦除在循环的每个循环之后已经完成的所有更改.我怎么能这样做?我可以改变不是全部,但让我们说100个值?

Jam*_*lis 5

用以下内容填充整个数组true:

std::fill(begin(log), end(log), true);
Run Code Online (Sandbox Code Playgroud)

true以下内容填充前100个元素:

std::fill(begin(log), begin(log) + 100, true);
Run Code Online (Sandbox Code Playgroud)

beginend在C++ 11中添加; 如果您的编译器和库不支持它们,请考虑使用std::array<bool, N>,具有beginend成员函数.你真的应该使用std::array模板,因为它没有开销,提供标准的序列容器接口,并帮助你避免C数组的愚蠢语义.