C++ 在创建图形之前设置边属性
我正在生成一个C++ 在创建图形之前设置边属性,c++,boost-graph,C++,Boost Graph,我正在生成一个boost::graph,有大约300k条边。我在循环中创建了一组边,在循环中我还计算了边的一些属性。因为我需要所有边来创建图形,所以我还没有访问edge\u描述符的权限。有没有一种方法可以做到这一点,而不必再次在整个集合中进行另一次传递?当我创建边时,我使用std::pair,这与描述符兼容吗 如果你知道顶点的数量(那么你可以初始化一个图,然后你可以在以后添加边)。如果你事先不知道顶点的数量,我不知道你是如何制作这个图的 如果您有顶点(即,如果您在获得顶点的值后立即创建顶点描述符
boost::graph
,有大约300k条边。我在循环中创建了一组边,在循环中我还计算了边的一些属性。因为我需要所有边来创建图形,所以我还没有访问edge\u描述符的权限。有没有一种方法可以做到这一点,而不必再次在整个集合中进行另一次传递?当我创建边时,我使用std::pair
,这与描述符兼容吗 如果你知道顶点的数量(那么你可以初始化一个图,然后你可以在以后添加边)。如果你事先不知道顶点的数量,我不知道你是如何制作这个图的
如果您有顶点(即,如果您在获得顶点的值后立即创建顶点描述符),则可以在同一循环中使用函数boost::add_edge(u,v,the_graph)
向图形添加边
假设你有这样的图和顶点描述符:
//Note: this code is just a guideline, i hope you'd be able to take up from here
typedef typename boost::adjacency_list<boost::listS, boost::vecS,
boost::directedS,Vertex_t*> Graph_t;
typedef typename boost::graph_traits<Graph_t>::vertex_descriptor Vd_t;
如果你知道顶点的数量(那么你可以初始化一个图,然后你可以在以后添加边)。如果你事先不知道顶点的数量,我不知道你是如何制作这个图的
如果您有顶点(即,如果您在获得顶点的值后立即创建顶点描述符),则可以在同一循环中使用函数boost::add_edge(u,v,the_graph)
向图形添加边
假设你有这样的图和顶点描述符:
//Note: this code is just a guideline, i hope you'd be able to take up from here
typedef typename boost::adjacency_list<boost::listS, boost::vecS,
boost::directedS,Vertex_t*> Graph_t;
typedef typename boost::graph_traits<Graph_t>::vertex_descriptor Vd_t;