boost - 在图中添加和删除现有边(BOOST)?

标签 boost graph graph-theory

假设我有一个无向图 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);

两个边缘都消失了,还是我还有其中之一?

最佳答案

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

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

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

关于boost - 在图中添加和删除现有边(BOOST)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27191846/

相关文章:

c++ - 共享内存段是否跨 boost 版本和编译器版本兼容

algorithm - 拓扑排序变体

python - 有没有办法在 NetworkX 中找到节点之间的双向关系?

c++ - Boost.MultiIndex 数据结构中的通配符搜索?

c++ - 年份超出有效范围 : 1400. ..10000

安卓工作室 : CMake is not finding Boost header files

ios:Coreplot,无法在一张图表上绘制多个图

python - 具有 4 个方程的绘图图由 f(x,y, xy) 组成

algorithm - 深度优先搜索与广度优先搜索

在一组项目中建立排序的算法