我正在开发一个使用boost :: adjacency_list表示图形的仿真程序。边缘具有服装设计特性
struct edge_data{
const float linear_cost, const_cost;
std::queue<*Agent> agents;
edge_data(float lin, float con) : linear_cost(lin),const_cost(con) {}
};
尝试了几种方法之后,我还没有找到创建一个property_map来为每个边缘返回完整EdgeData的方法,也没有找到其他方法来迭代和修改边缘。有可能,如果可以,怎么办?
答案 0 :(得分:0)
您可以从图中询问边缘束
使用boost::edge_bundle_t
属性映射:
auto pmap = boost::get(boost::edge_bundle, my_graph);
edge_data& data = pmap[my_edge_descriptor];
使用便捷访问者:
edge_data& data = mygraph[my_edge_descriptor];
,或为子属性使用特定的属性映射:
auto costmap = boost::get(&edge_data::linear_cost, my_graph);
float cost = costmap[my_edge_descriptor];