为深度优先搜索定义 ColorMap 的最简单方法

rak*_*kun 2 c++ boost boost-graph

我想使用深度优先搜索算法。由于我需要指定起始顶点的 DFS 版本,因此我还必须定义一个 ColorMap。这就是我想使用的功能:

template <class Graph, class DFSVisitor, class ColorMap>
void depth_first_search(const Graph& g, DFSVisitor vis, ColorMap color, 
             typename graph_traits<Graph>::vertex_descriptor start)
Run Code Online (Sandbox Code Playgroud)

https://www.boost.org/doc/libs/1_67_0/libs/graph/doc/depth_first_search.html

由于地图与我无关,因此默认值ColorMap就足够了。您能否给我一个提示,如何创建它并将其作为深度优先搜索中的参数传递?

0x5*_*453 5

只需使用命名参数重载即可,这将允许您在仅使用默认颜色贴图时指定起始顶点。

template <class Graph, class class P, class T, class R>
void depth_first_search(Graph& G, const bgl_named_params<P, T, R>& params);
Run Code Online (Sandbox Code Playgroud)

例子:

boost::depth_first_search(graph, boost::root_vertex(start_vertex));
Run Code Online (Sandbox Code Playgroud)