私のグラフには次の宣言があります
struct vertex_info
{
std::string name;
std::string label;
unsigned int type;
bool isND;
};
struct edge_info
{
std::string name;
long capacity;
long residualCapacity;
long rev;
};
typedef boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS
, vertex_info, edge_info > expr_graph_t;
とノードでグラフ(フローネットワーク)flowG
を構築しました。次に、ブーストグラフライブラリで指定された方法を使用して最大フローを計算します。次のように関数を呼び出しています。source
sink
push_relabel
push_relabel_max_flow(flowG, source, sink
, get(&edge_info::capacity, flowG)
, get(&edge_info::residualCapacity, flowG)
, get(&edge_info::rev, flowG)
, get(boost::vertex_index, flowG)
);
コンパイラ(g ++)は長いエラーメッセージを生成しています(ここに貼り付けられています)。正しいタイプのマップを関数に渡すことができないのではないかと思います。関数のシグネチャは、boost-docで入手できます。
ドキュメントには多くの例がありますが、グラフを使用しているのは私のものとは異なります。グラフ宣言を変更することはできません。変更しないと、多くのコードが壊れてしまいます。私はproperty_map
概念を後押しすることに慣れていません。