簡體   English   中英

使用boost :: adjacency_list的自定義邊緣屬性遍歷邊緣

[英]Iterating through edges with custom defined edge properties of boost::adjacency_list

我正在開發一個使用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) {}
};

在嘗試了幾種方法之后,我還沒有找到創建為每個邊緣返回完整EdgeData的property_map的方法,或以其他方式遍歷和修改邊緣的方法。 有可能,如果可以,如何?

您可以從圖中詢問邊緣束

  • 使用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]; 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM