gpt4 book ai didi

c++ - 如何使用 Boost Graph Library 更改图中的边权重?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:10:16 31 4
gpt4 key购买 nike

我已经使用 Boost 图形库定义了一个图形,

typedef boost::property<boost::edge_weight_t, int> EdgeWeightProperty;
typedef boost::adjacency_list<boost::listS, boost::vecS,boost::undirectedS,boost::no_property,EdgeWeightProperty> Graph;

使用

添加边相当简单
boost::add_edge(vertice1, vertice2, weight, graph);

我还没有弄清楚如何在设置边缘权重后更改它。一种可能的解决方案是删除边缘并使用更新后的权重值重新添加它,但是,这似乎有点过分。

最佳答案

一种解决方案是执行以下操作

typedef boost::adjacency_list<boost::setS, boost::vecS, boost::undirectedS,boost::no_property,EdgeWeightProperty> Graph;
typedef Graph::edge_descriptor Edge;
Graph g;
std::pair<Edge, bool> ed = boost::edge(v1,v2,g);
int weight = get(boost::edge_weight_t(), g, ed.first);
int weightToAdd = 10;
boost::put(boost::edge_weight_t(), g, ed.first, weight+weightToAdd);

关于c++ - 如何使用 Boost Graph Library 更改图中的边权重?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24366642/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com