我目前正在尝试定义升压图的外部属性。我使用一些捆绑的属性作为内部属性:
struct VertexProperties
{
int demand;
};
struct EdgeProperties
{
uint capacity;
int cost;
};
typedef adjacency_list <vecS, vecS, bidirectionalS, VertexProperties, EdgeProperties> Graph;
但是,在算法期间,我需要一些外部属性,即我希望能够将图形的边/顶点映射到存储在 std::vector 中的元素,以便我可以通过 operator[] 访问它们(Edge e)。我毫无头绪地站在 boost 文档前。似乎我需要一个property_map,但我不知道如何将它们与向量一起使用。到目前为止,我发现的唯一示例涉及从顶点到向量的映射,但由于顶点是无符号整数,因此这是微不足道的。
到目前为止,我对 boost 感到非常沮丧,我认为它可以为我节省大量时间来实现和测试一个图形类,我真的没有得到这个疯狂的模板元编程的东西......