试图解决这个问题,但我的程序不断崩溃(所以我只是从头开始重新做我的循环)。
我需要做的:如果我的网格中的每个坐标都设置为真,做点什么。否则,做其他事情,直到每个坐标都为真。
伪代码:
Grid<bool> g(25, 25);
while (1) {
if (every coordinate is true) {break;}
//do stuff
}
你们能帮帮我吗?特别是“如果(每个坐标都是真的)”公式?
我会做类似的事情:
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 是如何定义的......
如果您的网格支持迭代器,您可以使用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 上的循环中,然后就可以设置了。
您用 C++ 标记了您的问题,但发布的代码都不像 C++。你具体使用什么语言来解决这个问题?