【发布时间】:2013-12-04 00:53:29
【问题描述】:
我正在尝试使用 boost 图形库定义图形。我从文本文件中读取了如下定义的 from_to_and_distance 矩阵。我打算简单地遍历矩阵来定义图形的边缘,但我无法理解如何使用这种方法定义边缘属性。具体来说,我想使用下面定义的 distance_from_a_to_b 变量,并将其分配给每个主题边缘。如您所见,我对 c++ 比较陌生,因此虽然库文档可能有答案,但我似乎无法理解。有人可以帮忙吗?我计划在完成后将此图输入到 dijkstra 算法中 - 如果这有所作为。
提前致谢!
struct site_properties{
};
struct reach_properties{
double distance;
};
//Note that from_to_and_distance_matrix is std::vector<std::vector<double> > and
//includes inner vectors of [from_node,to_node,distance]
boost::adjacency_list<boost::vecS,boost::vecS,boost::directedS,site_properties,reach_properties> graph(unique_node_ids.size());
for(unsigned int i = 0; i < from_to_and_distance_matrix.size(); i++){
int node_a = (int)from_to_and_distance_matrix[i][0];
int node_b = (int)from_to_and_distance_matrix[i][1];
//How do I assign the distance_from_a_to_b variable to the edge?!
double distance_from_a_to_b = from_to_and_distance_matrix[i][2];
boost::add_edge(node_a,node_b,graph);
}
【问题讨论】:
标签: c++ boost graph boost-graph