-1

试图解决这个问题,但我的程序不断崩溃(所以我只是从头开始重新做我的循环)。

我需要做的:如果我的网格中的每个坐标都设置为真,做点什么。否则,做其他事情,直到每个坐标都为真。

伪代码:

Grid<bool> g(25, 25);

while (1) {
if (every coordinate is true) {break;}

//do stuff

}

你们能帮帮我吗?特别是“如果(每个坐标都是真的)”公式?

4

3 回答 3

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 是如何定义的......

于 2013-03-13T20:53:35.950 回答
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 上的循环中,然后就可以设置了。

于 2013-03-13T22:20:06.633 回答
0

您用 C++ 标记了您的问题,但发布的代码都不像 C++。你具体使用什么语言来解决这个问题?

于 2013-03-13T21:03:35.217 回答