私のプログラムの一部 (必要に応じて詳細を追加できます) には、次の行が含まれています。
if((e->start->explored = false) || (e->end->explored = false)){
//do action...
}
これはグラフ アルゴリズムの一部であり、e は "開始" と "終了" の頂点を持つ有向エッジです。e のインシデント頂点の少なくとも 1 つが探索されていない場合に「アクション」が発生することを望みますが、このロジックには誤りがあるようです。小さな例を使用して、実際にエッジの開始頂点と終了頂点が最初から探索されていないことを確認しましたが、関数全体が無限ループに陥っています。
それで、私は次のようにテストしました:
if((e->start->explored = false) || (e->end->explored = false)){
//do action...
}
else cout << "FAIL";
...そしてもちろん、「FAIL」の画面が表示されました。ここで私の論理エラーは何ですか?