首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用boost filtered_graph而不使用print_graph()

使用boost filtered_graph而不使用print_graph()
EN

Stack Overflow用户
提问于 2014-01-21 16:24:45
回答 1查看 477关注 0票数 0

我希望在没有print_edges()或print_graph()函数的情况下,是否还有其他方式使用print_edges ()。

在链接这里中,似乎只有当调用打印图形或打印边缘函数时,过滤器才能在每个节点上工作。

我确实理解,当谓词被打印到std::cout时,它作用于图的每个节点或边缘。

还有别的办法吗,我可以用它吗?我可以使用for_each( begin_iter,end_iter )或类似的东西吗?请建议一下。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-22 01:57:57

您可以在定义了大量迭代器宏的情况下使用#include <boost/graph/graph_utility.hpp>:BGL_FORALL_EDGES、BGL_FORALL_VERTICES、BGL_FORALL_OUTEDGES等。

典型的代码可能如下所示:

代码语言:javascript
复制
BGL_FORALL_VERTICES(src, g, MyGraph_t )
{
    BGL_FORALL_OUTEDGES(src, ed, g, MyGraph_t )
    {
        MyGraph_t::vertex_descriptor tgt = target(ed, g);
        ... do something ...
    }
}

无论MyGraph_t是filtered_graph还是adjacency_list,还是任何其他BGL图形类型,该代码都能工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21263667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档