我需要迭代圖(DFS),但不使用標準的DFS訪問者回調技術。在沒有訪客的情況下遍歷提升圖
有沒有辦法以這種方式迭代遍歷圖?
for(each edge in my graph visited in dfs) {
do some complicated stuff;
}
我需要迭代圖(DFS),但不使用標準的DFS訪問者回調技術。在沒有訪客的情況下遍歷提升圖
有沒有辦法以這種方式迭代遍歷圖?
for(each edge in my graph visited in dfs) {
do some complicated stuff;
}
是的,這取決於具體的圖表類型,你可以做
auto e = edges(g);
for (auto it = e.first; it != e.second; ++it)
{
}
如果你圖模型不同的概念,你可能想in_edges(g)
或out_edges(g)
:http://www.boost.org/doc/libs/1_55_0/libs/graph/doc/graph_concepts.html
編輯更新到評論:
你必須自己包裝它 然後。您可以使用Boost Coroutine強制使用拉式接口。或者您可以使用訪問者填寫隊列,DFS完成後您將使用該隊列。
等待,你想要DFS但不是DFS?你是否僅僅意味着你不喜歡BGL API? – sehe
是的。我將提升整合到一些現有的代碼中,如果它以這種方式工作,它會簡單得多。 – subzero