可能它是boost图库中的一个错误,但也许你可以帮助我。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
执行后,并不能正确。
有没有人有想法如何解决这个问题?是否有可能从图表中完全删除标签?我认为标签仍然存在,它仍然“指向”同一顶点节点,尽管顶点本身不再一样(或者即使它不存在)。
谢谢!