如何在 C++ 中用填充函数初始化双维布尔 array/char 数组?
How to initialize a double dimensional boolean array/char array with fill function in C++?
我想初始化一个bool类型的二维数组,值为真。
bool a[5][5] = {true}; //Well this won't work
fill(a,a+sizeof(a),true); // This throws an error too.
如何完成这项工作?
bool a[5][5] {{true, true, true, true, true},
{true, true, true, true, true},
{true, true, true, true, true},
{true, true, true, true, true},
{true, true, true, true, true}};
正确,但很脆弱——当你改变数组的大小而不改变 true, true, true...
部分时,添加的数组部分将使用 false
.
初始化
你最好简单地使用 for 循环来做到这一点:
bool a[5][5];
for (auto& r: a)
for (bool& b: r)
b = true;
或使用std::vector
:
std::vector<std::vector<bool> > a(5, {true, true, true, true, true});
我想初始化一个bool类型的二维数组,值为真。
bool a[5][5] = {true}; //Well this won't work
fill(a,a+sizeof(a),true); // This throws an error too.
如何完成这项工作?
bool a[5][5] {{true, true, true, true, true},
{true, true, true, true, true},
{true, true, true, true, true},
{true, true, true, true, true},
{true, true, true, true, true}};
正确,但很脆弱——当你改变数组的大小而不改变 true, true, true...
部分时,添加的数组部分将使用 false
.
你最好简单地使用 for 循环来做到这一点:
bool a[5][5];
for (auto& r: a)
for (bool& b: r)
b = true;
或使用std::vector
:
std::vector<std::vector<bool> > a(5, {true, true, true, true, true});