提升图:在度数为 0 的顶点上调用remove_vertex时会发生什么>

Boost Graph: What happens when calling remove_vertex on vertex with degree > 0

本文关键字:vertex remove gt 什么 调用 顶点      更新时间:2023-10-16

来自函数remove_vertex的提升图手册

假设在删除顶点 u 时没有与顶点 u 之间的边。确保这一点的一种方法是事先调用 clear_vertex()。

如果在连接到其他顶点的顶点上调用remove_vertex(),会发生什么情况?它会导致未定义的行为吗?

从手册中的引用来看,似乎会发生不好的事情。如果是这样,为什么以这种方式调用时不抛出异常?

除了一些算法和实用程序外,Boost 图形库通常不会引发异常,尤其是在访问或修改图形结构时。我想这个决定是由于性能原因而做出的。

我会将此 API 模型与 STL 进行比较。在 STL 中,违反前提条件会导致未定义的行为,而不是引发异常。