我试图大致了解提升adjacency_list
的工作原理,并且在使用{{{}}}后调用remove_edge
时,边缘描述符如何保持有效无法理解{1}}的{1}}。
据我所知,顶点和边缘描述符都是邻接列表的中心顶点和边缘存储(也是每个EdgeList
)的索引。当删除边时,不应该在存储中删除边之后使所有边的描述符(索引)无效吗?或者至少是从末端移动以填补空隙的边缘?
答案 0 :(得分:0)
部分答案:
执行remove_edge(u,v,g)将始终使(u,v)或指向(u,v)的edge迭代器的任何边描述符无效,无论种类adjacency_list如何。在关于迭代器和描述符失效的讨论中,我们只关注remove_edge(u,v,g)对边缘描述符和指向其他边缘的迭代器(不是(u,v))的影响。
有关original documentation的更多信息。