-1

この問題に頭を悩ませようとしていますが、プログラムがクラッシュし続けます(したがって、ループを最初からやり直しています)。

必要な作業:グリッド内のすべての座標がtrueに設定されている場合は、何かを実行します。それ以外の場合は、すべての座標が真になるまで他のことを行います。

擬似コード:

Grid<bool> g(25, 25);

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

//do stuff

}

助けてくれませんか?具体的には、「if(すべての座標がtrue)」の定式化で?

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;
}

もちろん、それはすべてグリッドがどのように定義されているかに依存します...

于 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 に答える