Boost :: d_ary_heap_indirect DistanceMap模板参数

时间:2011-08-17 05:55:09

标签: c++ boost

我正在考虑在代码中使用boost::d_ary_heap_indirect,但我无法理解其中一个模板参数DistanceMap。评论(完整来源here)可以这样说:

// - DistanceMap must be a ReadablePropertyMap from Value to something
//   (typedef'ed as distance_type).

我尝试在升级类中查看它的用法,但在boost::astar_search中使用时,它是由detail::make_property_map_from_arg_pack_gen<tag::rank_map, D>(D())(g, arg_pack)创建的,我理解的更少......

从源头看,我感觉它可能是优先事项,但是当被称为“距离”时,这似乎很奇怪。

1 个答案:

答案 0 :(得分:0)

是的,DistanceMap是从值到优先级的地图,也就是密钥。 D-ary堆通常用于 Dijkstra 的算法。在 Dijkstra 的算法中,优先级尤其由边缘路径成本(距离)表示。我猜这就是为什么它的名字就像这样。

例如,有一个方法keys()可以返回此地图。

// return value-to-key map
DistanceMap keys() const
{
  return distance;
}