Я пытаюсь определить график, используя библиотеку графов повышения. Я прочитал из текстового файла, чтобы получить матрицу from_to_and_distance, как определено ниже. Я планировал просто перебрать матрицу, чтобы определить ребра графа, но не могу понять, как определить свойства ребер с помощью этого метода. В частности, я хотел бы использовать переменную Distance_from_a_to_b, как определено ниже, и назначать ее каждому краю объекта. Я относительно новичок в С++, как вы можете видеть, поэтому, хотя в документах библиотеки может быть ответ, я не могу его понять. Может кто-нибудь помочь? Я планирую передать этот график в алгоритм Дейкстры после его завершения — если это будет иметь значение.
Заранее спасибо!
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);
}