我对Boost Graph还是很陌生,所以也许我缺少一个明显的答案。我为此提前道歉。 我用两个listS中包含的顶点和边实例化了一个图。如果我的代码中的某个函数使用remove_vertex(v,g)/ remove_edge(e,g)操作删除了一个顶点/边缘,那么另一个函数如何在不具有已存储的vertex_descriptor / edge_descriptor的情况下仍然有效(例如包含在图中)使用vertex_set()/ out_edge_list(v)函数检查图形中包含的所有顶点/边?
我尝试过
boost::clear_vertex(v,g);
boost::remove_vertex(v,g);
if (v == g.null_vertex())
std::cout << "invalid" << std::endl;
else
std::cout << "valid" << std::endl;
delete v;
v = nullptr;
但是当我尝试删除顶点时,我进入标准输出“ valid”,并且应用程序崩溃。 非常感谢您的帮助。