Ziyaretçinin içinden gelen vertex'in özelliklerini nasıl değiştirmeliyim?Ziyaretçiden gelen özellikleri değiştirme
Grafiğin alt komut dosyasının basit yöntemini kullanmak istiyorum, ancak ziyaretçiye geçirilen grafik parametresi const'dir, bu nedenle derleyici değişiklikleri reddeder.
Ziyaretçideki grafiğe bir başvuru kaydedebilirim, ancak bu garip görünüyor.
/**
A visitor which identifies vertices as leafs or trees
*/
class bfs_vis_leaf_finder:public default_bfs_visitor {
public:
/**
Constructor
@param[in] total reference to int variable to store total number of leaves
@param[in] g reference to graph (used to modify bundled properties)
*/
bfs_vis_leaf_finder(int& total, graph_t& g) :
myTotal(total), myGraph(g)
{
myTotal = 0;
}
/**
Called when the search finds a new vertex
If the vertex has no children, it is a leaf and the total leaf count is incremented
*/
template <typename Vertex, typename Graph>
void discover_vertex(Vertex u, Graph& g)
{
if(out_edges(u, g).first == out_edges(u, g).second) {
myTotal++;
//g[u].myLevel = s3d::cV::leaf;
myGraph[u].myLevel = s3d::cV::leaf;
} else {
//g[u].myLevel = s3d::cV::tree;
myGraph[u].myLevel = s3d::cV::tree;
}
}
int& myTotal;
graph_t& myGraph;
};
Referansa başvurmanın yolu olması gerektiğini düşünmeye başladım. Basit bir şeye baktığımı farz ettim, ama hiç kimse şimdiye kadar başka bir şey önermediği için ... – ravenspoint