現在、ブースト グラフの外部プロパティを定義しようとしています。バンドルされたプロパティを内部プロパティとして使用します。
struct VertexProperties
{
int demand;
};
struct EdgeProperties
{
uint capacity;
int cost;
};
typedef adjacency_list <vecS, vecS, bidirectionalS, VertexProperties, EdgeProperties> Graph;
ただし、アルゴリズム中にいくつかの外部プロパティが必要です。つまり、グラフのエッジ/頂点を std::vector に格納された要素にマップして、 operator[] (Edge e)。私は手がかりなしにブーストのドキュメントの前に立っています。property_map が必要なようですが、これらをベクトルと一緒に使用する方法がわかりません。これまでに見つけた唯一の例は、頂点からベクトルへのマップに関するものですが、頂点は unsigned int であるため、これは些細なことです。
これまでのところ、boost には本当に不満を感じています。自分でグラフ クラスを実装してテストする時間を大幅に節約できたと思います。このクレイジーなテンプレート メタプログラミングのものは本当にわかりません...