gpt4 book ai didi

c++ - labeled_graph 中的权重

转载 作者:行者123 更新时间:2023-11-30 05:30:39 24 4
gpt4 key购买 nike

如何为这个使用 add_edge_by_label 的标记图添加权重以用于 dijkstra_shortest_paths?我正在尝试使用 example谢谢

#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/copy.hpp>
#include <boost/graph/labeled_graph.hpp>
#include <boost/graph/graph_utility.hpp>

struct NodeInfo1 { int i; };
struct EdgeInfo1 { int j; };

typedef boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS, NodeInfo1, EdgeInfo1> AList;
typedef boost::labeled_graph<AList, std::string> Graph;

auto TestCopyGraph()
{
std::string names[3] = { "A", "B", "C" };
NodeInfo1 props[3] = { {11}, {22}, {33} };
Graph grid(3, names, props);
/*auto e =*/ add_edge_by_label("C", "B", EdgeInfo1{17}, grid);

Graph g1 = grid; // just copy-construct
return g1;
}

最佳答案

随处可见。在捆绑的 j 字段中?

auto weight_map = boost::get(&EdgeInfo1::j, g1);

在外部 map 中?

std::map<Graph::edge_descriptor, double> weights;
auto weight_map = boost::make_assoc_property_map(weights);

根据文档将其直接或作为命名参数传递给 dijkstra(或搜索我的答案以获取示例)。

关于c++ - labeled_graph 中的权重,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35879220/

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