使用Boost Graph Library中的自定义访问器,如何停止广度优先搜索?

10

假设我已经找到符合条件的节点,并且需要停止搜索。

1个回答

10
解决方案是抛出已知类型的异常,然后在调用端捕获它。从FAQ中可以得到以下信息:
“我怎样能够从BFS等算法中提前退出呢?” “创建一个访问者(visitor),当你想要终止搜索时,抛出一个异常,然后将你对breadth_first_search的调用放在适当的try/catch块内。然而,这种使用异常的方式可能会被很多程序员认为是一种误用,但是,我们经过了深思熟虑,决定采用异常作为提前退出的首选方式。请参见boost邮件讨论以获取更多详细信息。”

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接