首页 > 解决方案 > Boost Graph Library:多个权重图

问题描述

我正在尝试使用 BGL 设计一种算法。我得到了不同的权重图,我需要针对每个权重图计算图形的 MST。

顺便说一句,我想知道是否可以使用不同的权重图并仅更改图表中的参考。

我尝试了以下代码,但似乎如果我修改一个地图的条目,我会修改我声明的所有地图的相同条目。这是代码:

typedef boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS,
boost::no_property, boost::property<boost::edge_weight_t, long> >      weighted_graph;
typedef boost::property_map<weighted_graph, boost::edge_weight_t>::type weight_map;
typedef boost::graph_traits<weighted_graph>::edge_descriptor            edge_desc;
typedef boost::graph_traits<weighted_graph>::vertex_descriptor          vertex_desc;

weighted_graph G(50);
weight_map weights[5];

...
// build the graph
...
weights[0][edge1] = 121;
...
weights[3][edge1] = 34;
...
// weights[0][edge1] == 34

这怎么可能?

标签: c++boost-graph

解决方案


推荐阅读