【发布时间】:2018-08-30 14:32:25
【问题描述】:
一段时间以来,我一直在努力使用 Boost 框架实现 Djikstra 算法,但我似乎无法弄清楚我缺少什么。
使用在以下位置找到的示例:https://www.boost.org/doc/libs/1_67_0/libs/graph/doc/dijkstra_shortest_paths.html,
第 36 行出现错误
property_map<graph_t, edge_weight_t>::type weightmap = get(edge_weight, g);
class "boost::property_map<boost::adjacency_list<boost::listS, boost::vecS, boost::directedS, boost::no_property, boost::property<boost::edge_weight_t, int, boost::no_property>, boost::no_property, boost::listS>, boost::edge_weight_t, void>" has no member "type"
我找不到其他人有同样的问题,而且我似乎无法找出问题所在。对此问题的任何帮助将不胜感激。
提前致谢
【问题讨论】:
-
好吧,这个错误准确地告诉你出了什么问题。在
property_map类中没有任何东西叫type。你到底想从那里获得什么? -
你的 Boost 版本是否与示例中的版本相同(1.67.0)?
-
是的,我使用的是 1.67.0。我知道
property_map类中没有任何称为 type 的东西,但是我见过的所有 djikstra 示例(无论哪个版本)似乎都使用了这个::type成员,我似乎找不到。如果我错过了什么,我就无法解决。 -
试试 property_map
weightmap = get(edge_weight, g);