我的程序的一部分(如有必要,我可以添加更多详细信息)包含以下行:
if((e->start->explored = false) || (e->end->explored = false)){
//do action...
}
这是图算法的一部分,其中 e 是具有事件顶点“开始”和“结束”的有向边。如果 e 的至少一个事件顶点未被探索,我希望“行动”发生,但这种逻辑似乎是错误的。尽管我使用了一个小例子并验证了我的边的起点和终点确实是未经探索的,但我的整个函数正在进入一个无限循环。
然后我像这样测试它:
if((e->start->explored = false) || (e->end->explored = false)){
//do action...
}
else cout << "FAIL";
……当然,它打印了一个“失败”的屏幕。我的逻辑错误是什么?