我的图表有以下声明
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
boost 图形库中给出的方法计算最大流量。我正在调用该函数,如下所示。
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
概念。