gpt4 book ai didi

c++ - boost::prim_minimum_spanning_tree 中意外的负边权重错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:23:28 24 4
gpt4 key购买 nike

以下代码在 prim_minimum_spanning_tree 调用上抛出“负边权重”,即使我使用正数也是如此。应该改变什么才能让它发挥作用?

typedef boost::property<vertex_distance_t, int> VertexProperty;
typedef boost::property<edge_weight_t, int> EdgeProperty;
typedef adjacency_list<vecS, vecS, undirectedS, VertexProperty, EdgeProperty> Graph;

typedef pair<int, int> Edge;

Edge edges[] = {Edge(0, 1), Edge(1, 2)};
int weights[] = {2, 1}; // this works: int weights[] = {1, 2};

Graph g(edges, edges + sizeof(edges)/sizeof(Edge), weights, 3);
std::vector<Graph::vertex_descriptor> predecessors(num_vertices(g));
boost::prim_minimum_spanning_tree(g, &predecessors[0]);

注意:我可以通过调整权重值使其成功。

编译器:MS Visual Studio 2010 C++升压版本:1.54

最佳答案

这是一个 Boost bug ,并且已经修复:如果其他人从 1.54 看到此行为,只需 update to 1.55 or newer .

关于c++ - boost::prim_minimum_spanning_tree 中意外的负边权重错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18291275/

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