Boost logo

Boost Users :

Subject: Re: [Boost-users] dijkstra and associative property map
From: Sandeep Gupta (gupta.sandeep_at_[hidden])
Date: 2009-03-26 19:03:58


Pls. Ignore the mail. The error due to a typo.

Thanks
sandeep

On Thu, Mar 26, 2009 at 3:57 PM, Sandeep Gupta <gupta.sandeep_at_[hidden]> wrote:
> Hi,
>  Attached below is the code to call Dijkstra over property_map data
> structures. The current definition of associative property map is
> incompatible for dijkstra. Somehow there is mismatch with respect to
> operator[]. Attach below is the code and the error.
>
> std::map<vertex_t, vertex_t> pred;
>  boost::associative_property_map< std::map<vertex_t, vertex_t> >
>    preds(pred);
>
>  std::map<vertex_t, double> dist;
>  boost::associative_property_map< std::map<vertex_t, double> >
>    dists(dist);
>
>
>  std::map<vertex_t, double> weight;
>  boost::associative_property_map< std::map<vertex_t, double> >
>    weights(weight);
>
>  vertex_t v;
>  //vertex_t v1 = preds[v];
>   dijkstra_shortest_paths(tg, v,
>                           predecessor_map(preds).
>                           weight_map(weights).
>                           distance_map(dists)
>                           );
>
> Error:
> /home/sandeep/Computing/boost_1_38_0/boost/property_map.hpp:314:
> error: no match for ‘operator[]’ in ‘(const
> boost::associative_property_map<std::map<unsigned int, double,
> std::less<unsigned int>, std::allocator<std::pair<const unsigned int,
> double> > > >&)((const
> boost::associative_property_map<std::map<unsigned int, double,
> std::less<unsigned int>, std::allocator<std::pair<const unsigned int,
> double> > > >*)(& pa))[k]’
> /home/sandeep/Computing/boost_1_38_0/boost/property_map.hpp:458: note:
> candidates are: typename
> UniquePairAssociativeContainer::value_type::second_type&
> boost::associative_property_map<UniquePairAssociativeContainer>::operator[](const
> typename UniquePairAssociativeContainer::key_type&) const [with
> UniquePairAssociativeContainer = std::map<unsigned int, double,
> std::less<unsigned int>, std::allocator<std::pair<const unsigned int,
> double> > >]
>
> 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