I'm trying to get Dijkstra's shortest path algorithm to work with my graph which has some bundled edge properties with weight as an attribute in the bundle
struct edge_properties
{
int capacity ;
double weight ;
};
typedef boost::adjacency_list<listS, vecS, bidirectionalS, //directedS,
property<vertex_name_t, std::string>,
edge_properties> Graph;
I read in the graph using the graph viz library and that works fine. (tested by printing the graph info)
dynamic_properties dp;
dp.property("weight", get(&edge_properties::weight, g));
dp.property("capacity", get(&edge_properties::capacity, g));
read_graphviz(in, g,dp , "name") ;
I'm constantly seeing compiler errors when i use something from dijkstra-example.cpp.
// Dijkstra SRC is set to 1.
vertex_descriptor src = vertex(1, g);
// Just as in the example
std::vector<vertex_descriptor> p(num_vertices(g));
std::vector<double> d(num_vertices(g));
//RESULTS in compiler errors. See below.
dijkstra_shortest_paths( g, src,
predecessor_map(&p[0]).distance_map(&d[0]) ) ;
//USING This call works. But have no way to get the predecessor/distance info
// This fails if ***Graph*** is defined as listS,listS but works if Graph is defined as listS,vecS or vecS,vecS
dijkstra_shortest_paths( g, src,
weight_map(get(&edge_properties::weight,network.g)) );
The compiler error is copied. Any Pointers will be helpful. (Version of boost used = v1.34)
Thanks in advance
make errors