boost :: adjacency_list如何在remove_edge之后保留有效的边描述符

时间:2015-07-30 14:43:25

标签: c++ boost-graph

我试图大致了解提升adjacency_list的工作原理,并且在使用{{{}}}后调用remove_edge时,边缘描述符如何保持有效无法理解{1}}的{​​1}}。

据我所知,顶点和边缘描述符都是邻接列表的中心顶点和边缘存储(也是每个EdgeList)的索引。当删除边时,不应该在存储中删除边之后使所有边的描述符(索引)无效吗?或者至少是从末端移动以填补空隙的边缘?

1 个答案:

答案 0 :(得分:0)

部分答案:

  

执行remove_edge(u,v,g)将始终使(u,v)或指向(u,v)的edge迭代器的任何边描述符无效,无论种类adjacency_list如何。在关于迭代器和描述符失效的讨论中,我们只关注remove_edge(u,v,g)对边缘描述符和指向其他边缘的迭代器(不是(u,v))的影响。

boost adjacency iterator invalidation

有关original documentation的更多信息。