【问题标题】:Adding and removing existing edge in a graph (BOOST)?在图中添加和删除现有边(BOOST)?
【发布时间】:2015-01-27 07:13:42
【问题描述】:

假设我有一个无向图 G。假设我添加以下内容

add_edge(1,2,G);
add_edge(1,3,G);
add_edge(0,2,G);

现在我再说一遍:

add_edge(0,2,G);

我的图中是否有两条边从 0 ---> 2 开始?

如果我添加了两次边缘并且我这样做了会发生什么:

remove_edge(0,2,G);

两条边都消失了,还是我还有一条?

【问题讨论】:

    标签: boost graph graph-theory


    【解决方案1】:

    这两个问题的答案取决于图 G 的定义。

    根据boost::graph tutorial,第一个问题的答案取决于您在图形定义中使用的OutEdgeList。如果使用不能表示多条边的容器(如setShash_setS),无论插入多少次,两个顶点之间都只有一条边。如果您使用vectorSmultisetS 或类似名称,则每次调用add_edge() 都会插入一条边。

    第二个问题的答案,根据the same page(页面的那个部分不允许直接链接 - 只需搜索remove_edge)是调用该特定@后两个顶点之间的所有边都将被删除987654330@ 功能。 remove_edge() 有几个其他版本(在同一页上描述),每个版本的行为略有不同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多