Я пытаюсь определить граф, используя библиотеку графа ускорения. Я прочитал из текстового файла, чтобы получить матрицу 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);
}
+1. [Другая альтернатива] (http://coliru.stacked-crooked.com/a/1308ab5ce408909b), которая продолжает использовать связанные свойства на основе кода в этом ответе. – llonesmiz