5
我開始將BGL用於某些與圖形相關的任務。我有大量的邊緣,每個邊緣有幾個屬性,其中之一是它的重量。 (所有屬性都是浮動和整數)。由於我以前從未使用過BGL(和/或類似的CPP庫),因此我對所有這些類型,類以及如何正確使用它都有些迷茫。BGL邊緣的自定義屬性
添加我的邊緣是這樣的:
struct EdgeProperty
{
int weight;
float e1;
float e2;
};
typedef adjacency_list<vecS, vecS, bidirectionalS, no_property, EdgeProperty> Graph;
...
EdgeProperty prop;
node1 = ...;
node2 = ...;
prop.e1 = ...;
prop.e2 = ...;
prop.weight = ...;
add_edge(node1, node2, prop, g);
然後,我需要後來訪問我的財產,我所試圖做的是這樣的:
property_map<Graph, EdgeProperty>::type EdgeWeightMap = get(EdgeProperty, g);
w = get(EdgeWeightMap,some_edge);
然而,這並不甚至編譯。它說,在錯誤消息:
error: no type named ‘kind’ in ‘struct EdgeProperty’
除其他錯誤,我現在認爲不那麼重要。我不知道這是如何使用自定義屬性。您可以請向我解釋kind
錯誤消息以及如何使用自定義屬性?我找不到任何有關此主題的文檔(我瞭解)。
該鏈接幫了我很多。謝謝! – janoliver