Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在创建图形之前设置边属性_C++_Boost Graph - Fatal编程技术网

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;