首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Boost图中禁止重复的顶点?

如何在Boost图中禁止重复的顶点?
EN

Stack Overflow用户
提问于 2019-03-16 21:47:03
回答 1查看 232关注 0票数 1

如何在boost图中禁止重复的顶点?

代码语言:javascript
复制
using graph_t = boost::adjacency_list<boost::listS, boost::setS, boost::bidirectionalS>;

但是我仍然在我的图中看到重复的节点。vertexList的setS还不够吗?

代码语言:javascript
复制
void doGraph() {
      using graph_t =
         boost::adjacency_list<boost::setS, boost::setS, boost::directedS, std::string>;
      graph_t interference;
      add_vertex("m", interference);
      add_vertex("m", interference);
      // prints 2, why?
      std::cout << "vert #" << num_vertices(interference);
  }
EN

回答 1

Stack Overflow用户

发布于 2019-03-18 05:34:34

属性包不是顶点相等定义的一部分。顶点描述符是,它们是不同的:

代码语言:javascript
复制
  auto v1 = add_vertex("m", interference);
  auto v2 = add_vertex("m", interference);
  assert(v1 != v2);

如果您想要按名称查找,则必须自己为其添加索引(使用map/bimap)。如果只需要命名顶点,请考虑使用labeled_graph适配器(https://www.boost.org/doc/libs/1_69_0/libs/graph/example/labeled_graph.cpp)。遗憾的是,该适配器不是文档库的一部分。我在过去写了几个使用它的答案。

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

https://stackoverflow.com/questions/55197527

复制
相关文章

相似问题

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