【发布时间】:2013-07-24 17:13:06
【问题描述】:
可能是boost的图库中的一个错误,但也许你可以帮助我。
如previous question 中所示,从图中删除顶点并重新添加时存在问题。
我的问题略有不同。我有一个使用对象指针作为标签的boost::labeled_graph。让anObject 成为指向特定对象的指针,让aGraph 成为boost::labeled_graph。
然后执行以下代码:
clear_vertex_by_label(anObject, aGraph);
aGraph.remove_vertex(anObject);
Vertex v = aGraph.vertex(anObject);
我本以为会出现异常,但 v 似乎是 aGraph 中的一个顶点。现在出现以下问题(我认为它只发生在boost::labeled_graph):
当我执行以下代码时:
clear_vertex_by_label(anObject, aGraph);
aGraph.remove_vertex(anObject);
Vertex v = aGraph.add_vertex(aSecondObject);
Vertex v2 = aGraph.vertex(anObject);
Vertex v3 = aGraph.vertex(aSecondObject);
在执行此代码后v == v2 == v3 并不能正确。
有人知道如何解决这个问题吗?是否有可能从图表中完全删除标签?我认为标签仍然存在并且它仍然“指向”同一个顶点节点,尽管顶点本身不再相同(或者即使它不存在)。
谢谢!
【问题讨论】: