可能,这是 boost 图形库中的一个错误,但也许你可以帮助我。
如上一个问题所示,从图中删除顶点并再次添加它会出现问题。
我的问题略有不同。我有一个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
是不正确的。
有没有人知道如何解决这个问题?是否有可能从图表中完全删除标签?我认为标签仍然存在并且它仍然“指向”同一个顶点节点,尽管顶点本身不再相同(或者即使它不存在)。
谢谢!