Boost Graph Library - 来自外部向量的权重属性

时间:2012-05-17 01:43:10

标签: c++ templates boost boost-graph

我做错了什么?

#include <vector>

#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/dijkstra_shortest_paths.hpp>

using namespace std;

typedef boost::adjacency_list<> Graph;

void dijkstra(Graph &g, vector<double> &edge_weights, int source, vector<double> &dist,   vector<int> &prev) {
boost::dijkstra_shortest_paths(g, source,
                                 boost::weight_map(boost::make_iterator_property_map(edge_weights.begin(), get(boost::edge_index, g))));

}

(编译: g ++ main.cc -L / usr / local / boost /

错误:

  

/usr/include/boost/graph/detail/adjacency_list.hpp:2665:错误:'boost :: detail :: error_property_not_found&amp;'类型的非const引用无效初始化'boost ::细节:: error_property_not_found'

我认为问题可能是没有从边到整数的默认映射。如果是这样,我该如何定义一个?

1 个答案:

答案 0 :(得分:2)

您的图表没有edge_index属性,您在创建iterator_property_map时使用的属性。您需要在图表中添加此类属性并填写。请参阅Boost Graph Library: Bundled Properties and iterating across edgesedge_index zero for all edges?了解需要完成的工作。