我执行一个算法在C++的升的曲线图。
我想找到所有的顶点附近v(所以,其所有邻国),然后变化财产的最后清除所有他们的边缘。
我发现在提高功能 adjacent_vertices(v,g)
(此处v是顶点和g的图表)找到所有的邻居。 然后我想到适用于所有的它们的功能 clear_vertex(v,g)
(再次,v为顶点和g的图表)删除所有他们的边缘。
在这一点上,我有一个问题。 的 adjacent_vertices
功能返回的一对 adjacency_iterator
同时,对于 clear_vertex
功能我需要的 vertex_iterator
(如果我正确理解如何将这些功能工作)。
因此,有一个简单的方法要改变 adjacency_iterator
在 vertex_iterator
? 如果我保留 adjacency_iterator
并通过它的 clear_vertex
功能,问题是,它不会删除的边缘(或消除他们中随机的一些顶点).
我的 错误 代码是:
Graph::adjacency_iterator v,vend;
for(boost::tie(v,vend) = neighbours; v != vend ; ++v) {
clear_vertex(*v,g2);
}