- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
正如标题所示,我正在使用 boost::depth_first_search
并使用访问者(继承自 boost::default_dfs_visitor
)来实现一些算法。
但是,在算法运行过程中,我想在访问者中保存一些信息,以供稍后查询。但是,DFS 完成后信息会被删除,所以我假设它使用了一个拷贝。除了对所有 私有(private)变量使用指针之外,是否有办法防止这种情况发生并让 boost 使用我的拷贝?
最佳答案
您可以尝试通过包裹在 boost::reference_wrapper
中的访问者.
编辑 - teh codez
YourVisitorClass your_visitor;
boost::depth_first_search(your_graph, boost::ref(your_visitor),
your_color_map);
boost::ref(your_visitor)
返回 boost::reference_wrapper<YourVisitorClass>
.当depth_first_search
创建该参数的拷贝,它将复制 reference_wrapper 而不是访问者对象。引用的拷贝将引用与原始实例相同的实例。
关于c++ - 将 boost::depth_first_search 与访客一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4706841/
对于新手问题,我深表歉意,但我正在竭尽全力尝试开始使用 BGL。我正在尝试深度优先搜索: boost::default_dfs_visitor vis; boost::depth_first_sear
我正在使用 BGL存储我的 DAG。顶点有状态。鉴于其中一个顶点的状态发生变化,我想更新从属顶点。我可以使用 boost::depth_first_search 和自定义访问者来做到这一点。 现在的逻
正如标题所示,我正在使用 boost::depth_first_search 并使用访问者(继承自 boost::default_dfs_visitor)来实现一些算法。 但是,在算法运行过程中,我想
当在 adjacency_list boost::depth_first_search(Graph, Visitor) 中为 VertexList 使用 boost::vecS 时,编译和工作正常。将
我在 vs-2017 中使用 Boost 1.70.0。使用 depth_first_search 时,我观察到访问者中的 finish_edge 函数在使用 msvc 编译器编译时未被调用。使用 g
我是一名优秀的程序员,十分优秀!