首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打印促进::图形edge_descriptor

打印促进::图形edge_descriptor
EN

Stack Overflow用户
提问于 2015-03-10 15:18:35
回答 1查看 782关注 0票数 1

我使用的是一个boost::graph,我注意到当我只使用std::cout << *ei时,ei是从boost::edges命令获得的边迭代器,我看到像"(x,y)"这样的东西是打印出来的,其中xy是整数。我假设这些数字代表顶点描述符。根据这一点,我有一些问题:

  • vertex_descriptor表示在boost::graph中的默认类型是int吗?
  • 是否在boost中定义了用于operator<<edge_descriptor,以使输出看起来像我前面描述的那样?否则,我就无法理解它是如何运作的。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2015-03-10 16:23:49

Q.在boost::graph int中vertex_descriptor表示的默认类型是?

boost::graph不是一种类型。

存在许多图形类型(BGL是一个通用模板库)。

实际类型的vertex_descriptor是不透明的,可以积分。例如,它与vecS模板参数列表中的adjacecy_list顶点容器选择为整数。

Q.,在boost中定义了用于edge_descriptor的operator<<,使输出看起来像我前面描述的那样吗?否则,我就无法理解它是如何运作的。

。对于这样的图形类型,operator<<的以下重载被注入命名空间std (参见boost/graph/detail/edge.hpp):

代码语言:javascript
复制
namespace std {

  template <class Char, class Traits, class D, class V>
  std::basic_ostream<Char, Traits>& 
  operator<<(std::basic_ostream<Char, Traits>& os,
             const boost::detail::edge_desc_impl<D,V>& e)
  {
    return os << "(" << e.m_source << "," << e.m_target << ")";
  }

}

注意,这很可能是size_t,而不是int

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

https://stackoverflow.com/questions/28967478

复制
相关文章

相似问题

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