我正在考虑在代码中使用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)
创建的,我理解的更少......
从源头看,我感觉它可能是优先事项,但是当被称为“距离”时,这似乎很奇怪。
答案 0 :(得分:0)
是的,DistanceMap
是从值到优先级的地图,也就是密钥。 D-ary堆通常用于 Dijkstra 的算法。在 Dijkstra 的算法中,优先级尤其由边缘路径成本(距离)表示。我猜这就是为什么它的名字就像这样。
例如,有一个方法keys()
可以返回此地图。
// return value-to-key map
DistanceMap keys() const
{
return distance;
}