Boost C++ - 生成布局

Boost C++ - generating a layout

我最近一直在处理用 C++ 绘制图形。我的问题是,如何修复最后的错误:

 required from here
/usr/include/boost/graph/random_layout.hpp:30:8: error: ‘const class boost::random::linear_congruential_engine<unsigned int, 48271u, 0u, 2147483647u>’ has no member named ‘random_point’
     put(position_map, v, topology.random_point());
        ^

对于这个小代码片段:

  boost::minstd_rand gen;
  PositionVec position_vec(num_vertices(component));
  PositionMap position(position_vec.begin(), get(vertex_index, component));
  topology_type topo(gen, -width/2, -height/2, width/2, height/2);
  boost::random_graph_layout(component, position, gen);

我做错了什么?

非常感谢。

根据参考

template<typename Graph, typename PositionMap, typename Topology>
void
random_graph_layout(const Graph& g, PositionMap position_map,
                const Topology& space);  // <---

您应该作为 random_graph_layout 拓扑对象而非生成器的第三个参数传递。

所以打电话给

boost::random_graph_layout(component, position, topo);