-
11-10-2019 - |
题
我在用着 BGL 存放我的dag。顶点有状态。在我想更新依赖的顶点的顶点之一中的状态变化。我可以使用boost :: depth_first_search和自定义访问者进行此操作。
现在的逻辑是,如果顶点处于特定状态,我不想更新搜索的顶点及其依赖性。基本上,我想控制DFS或BFS中的顶点的出现。在BGL中实现这一目标的最佳方法是什么。
谢谢。
解决方案
似乎BOOST :: DEPTH_FIRST_SERACH不支持这一点,但是通过其第二个过载允许“终端函数”(terminatorFunc),基础的boost :: depth_first_visit确实可以。
因此,您可以将BOOST :: DEPTH_FIRST_SERACH的实现复制,并用您自己的(非琐事)终结器函数替换传递给boost :: depth_first_visit的详细信息:: depth_first_visit。
其他提示
缺乏深度优先搜索的终止 - 是我见过的图形库中最愚蠢的事情。
可能是,这可能是出路:filtered_graph上的depth_first_search。您可以以某种方式标记stop-vertex,并且在过滤器的函数中,filtered_graph只是隐藏事件边缘
不隶属于 StackOverflow