我正在使用boost graph_traits,并定义了这样的图:
typedef boost::adjacency_list <boost::setS, boost::vecS, boost::undirectedS, NodeInfo, EdgeInfo> Graph;
typedef boost::graph_traits<Graph>::vertex_descriptor Vertex;
我的每个顶点都有坐标,我想要找到重复的顶点(位置相同的顶点)。因此,我构建了一个包含这些“聚类”的列表:
std::vector<std::vector<Vertex>> clusters;
现在我尝试将每个聚类合并成一个单独的顶点(顶点列表)。为此,我对聚类中的每个顶点clusters[i]
进行调用:
boost::clear_vertex(v, graph)
boost::remove_vertex(v, graph);
然而我发现仍然存在重复项。我猜想这是由于在删除时使用了vecS
作为顶点列表,导致索引发生了变化。
这是什么原因,并且我该如何解决它?