Boost logo

Boost Users :

Subject: [Boost-users] [BGL] how to call Dijkstra
From: Sandeep Gupta (gupta.sandeep_at_[hidden])
Date: 2008-11-03 03:21:08


*Hi Tristram

Thanks for the reply. I tried the short version too as you suggestedbut the
error doesn't go away: Attached below is the new code snippet and the
related error.

Thanks
sandeep

std::map<Vertex, Vertex> pred;
    boost::associative_property_map< std::map<Vertex, Vertex> >
pred_map(pred);

    std::map<Vertex, size_type> dist;
    boost::associative_property_map< std::map<Vertex, size_type> >
dist_map(dist);

    std::map<Vertex, size_type> weight;
    boost::associative_property_map< std::map<Vertex, size_type> >
weight_map(weight);

    Vertex v;
    boost::dijkstra_shortest_paths(G, v, pred_map, dist_map, weight_map);
 error: no matching function for call to 'dijkstra_shortest_paths(Graph&,
leda::node_struct*&,
boost::associative_property_map<std::map<leda::node_struct*,
leda::node_struct*, std::less<leda::node_struct*>,
std::allocator<std::pair<leda::node_struct* const, leda::node_struct*> > >
>&, boost::associative_property_map<std::map<leda::node_struct*, int,
std::less<leda::node_struct*>, std::allocator<std::pair<leda::node_struct*
const, int> > > >&,
boost::associative_property_map<std::map<leda::node_struct*, int,
std::less<leda::node_struct*>, std::allocator<std::pair<leda::node_struct*
const, int> > > >&)'

*

>Hello

>You don't need to call dijkstra and specify all the templates as most
>of them have default values, and it's much more convinient to use
>named parameters:

>boost::dijkstra_shortest_paths(graph, start_node,
> boost::predecessor_map(predmap)
> .distance_map(distmap)
> .weight_map(weightmap)
> );
>}
On Thu, Oct 30, 2008 at 9:00 PM, Sandeep Gupta <gupta.sandeep_at_[hidden]>
wrote:
> Hi,
> I am missing something regarding the correct calling convention for
> Dijkstra algorithm. Here is the relevant part of the code:
>
> typedef boost::associative_property_map< std::map<Vertex, int> >
> intmapt;
> typedef boost::associative_property_map< std::map<Vertex, Vertex>
>> nodemapt;
> dijkstra_visitor<null_visitor> mynullvis;
> dijkstra_shortest_paths<Graph, dijkstra_visitor<null_visitor>,
> nodemapt, intmapt, intmapt, nodemapt, std::less<int>,
> std::plus<int>, std::numeric_limits<int>, std::numeric_limits<int> >
> (G, v, predmap, distmap, weightmap, indexmap, std::less<int>(),
> std::plus<int>(), std::numeric_limits<int>::max(), 0, mynullvis);
>
> I get an error as no matching function call dijkstra_shortest_paths.
> Appreciate some pointers as what could possibly be wrong.
>
> Thanks
> sandeep
>



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net