C++ 在boost图上迭代而不使用访问者

C++ 在boost图上迭代而不使用访问者,c++,boost,graph,boost-graph,C++,Boost,Graph,Boost Graph,我需要迭代一个图(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) { } 如果图形建模了不同的概念,则可能需要内边(g)或外边(g): 编辑

我需要迭代一个图(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)
{
}
如果图形建模了不同的概念,则可能需要
内边(g)
外边(g)

编辑更新评论:


那你得自己把它包起来。您可以使用boostcoroutine强制一个pull接口。或者,您可以使用访问者填充队列,在DFS完成后使用该队列。

等等,您想要DFS,但不想要DFS?你是说你不喜欢BGLAPI吗?是的。我正在将boost集成到一些现有的代码中,如果它以这种方式工作的话,会简单得多。感谢您的快速响应。但是我该如何按DFS顺序访问边缘?这DFS是如何进行的?看起来它只是在没有特定顺序的情况下迭代边。@pbible如果你看对话,你会发现我说的正是这个。答案是,OP必须自己编写,因为BGL没有这样的API