试图绕过这个问题,但我的程序一直在崩溃(所以我只是从头开始重新进行循环)。
我需要做什么:如果我的网格中的每个坐标都设置为true,请执行某些操作。否则,在每个坐标都为真之前做其他事情。
伪代码:
Grid<bool> g(25, 25);
while (1) {
if (every coordinate is true) {break;}
//do stuff
}
你能帮助我吗?特别是“if(每个坐标都是真的)”公式?
答案 0 :(得分:1)
我会做类似的事情:
bool every_coordinate_is_true(Grid<bool> g)
{
bool b = true;
foreach(x from grid) b &= x;
//here b is true iif all elements are true
return b;
}
当然这一切都取决于Grid的定义方式......
答案 1 :(得分:1)
如果你的网格支持迭代器,你可以使用std::all_of:
Grid<bool> g(25, 25);
// If every coordinate in my grid is set to true, do something
bool all_true = std::all_of(g.begin(), g.end(), [](const coordinate& c) -> bool
{ return c.is_true(); });
if(all_true)
do_something();
else
do_something_else();
现在将它包装在all_true的循环中,然后进行设置。
答案 2 :(得分:0)
您使用C ++标记了您的问题,但没有发布的代码看起来像C ++。您使用什么语言来解决这个问题?