グラフ関連のタスクでBGLを使い始めました。私は多数の辺を持ち、各辺にはいくつかの性質があり、そのうちの1つはその重みです。 (すべてのプロパティはfloatとintです)。これまで私は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