提升图:在度数为 0 的顶点上调用remove_vertex时会发生什么>
Boost Graph: What happens when calling remove_vertex on vertex with degree > 0
来自函数remove_vertex
的提升图手册
假设在删除顶点 u 时没有与顶点 u 之间的边。确保这一点的一种方法是事先调用 clear_vertex()。
如果在连接到其他顶点的顶点上调用remove_vertex()
,会发生什么情况?它会导致未定义的行为吗?
从手册中的引用来看,似乎会发生不好的事情。如果是这样,为什么以这种方式调用时不抛出异常?
除了一些算法和实用程序外,Boost 图形库通常不会引发异常,尤其是在访问或修改图形结构时。我想这个决定是由于性能原因而做出的。
我会将此 API 模型与 STL 进行比较。在 STL 中,违反前提条件会导致未定义的行为,而不是引发异常。
相关文章:
- 使用函数"remove"删除重复元素
- 链表的泛型函数remove()与成员函数remove)
- Qt:remove() 和 rmdir() 有什么区别
- remove(str.begin(), str.end(), );无法正常工作(我正在使用视觉工作室 2012)
- 提升图库示例 凯文培根的六度:示例中的 Vertex() 是什么
- std::remove() 按预期处理文字,但不能与取消引用的迭代器一起工作
- 图形"Vertex cover"暴力算法
- 从 MATLAB 到 C++:相当于带有选项 'remove' 的 bwmorph
- 为二进制树编码remove()函数
- OpenGL,Cubemap,Vertex和FragmentShader
- 如何理解"most modern linkers will remove redundant code like template instantiations."
- 使用容器中元素的别名删除带有 std::list::remove 的元素是否正确?
- C++代码"x.erase(std::remove(x.begin(), x.end(), ), x.end())"是如何工作的?
- std::remove, std::move(range) and moved-from elements
- 为什么我需要转换算法 remove() 的参数
- 在不同类型的向量上使用 std::remove 的不同结果
- 为什么 VERTEX 着色器中的矩阵乘法无法正常工作
- 在不存在的记录上调用 remove 会使程序崩溃
- 以变量作为参数的 remove()
- 尝试在 Kdevelop中调试时如何修复"WebConnect: Starting server failed. Try to remove stale socket."?