BGL:如何从捆绑对象到顶点描述符?

时间:2015-11-15 18:03:42

标签: c++ boost

问题是关于Boost Graph Library(遗憾的是没有这样的标签)。

假设我已使用Widget捆绑属性功能将Boost Graph Library实例与图表的每个顶点相关联。类Widget实现operator==,并且与顶点相关联的所有小部件都是不同的(即,对于任何顶点对,widget1 != widget2保持与这些顶点相关联的小部件)。

图表是否保持反向映射,即我可以轻松检索与给定对象相对应的顶点描述符吗?特别是,假设我有对象widget1widget2,并且相应的顶点已添加到图表中。如何在两个对象之间添加边(即在相应的顶点之间)?

1 个答案:

答案 0 :(得分:0)

我怀疑BGL本身不能提供从顶点属性到相应顶点描述符的映射,因为映射通常是m:1多对一。许多顶点/描述符可以对应于相同的属性。即使在你的情况下,你知道不同的顶点必须具有不同的属性,BGL通常无法知道。

您可以在创建图表时自行维护此映射(例如vd_map),例如使用std:map。当您插入每个顶点及其属性(在这种情况下为Widget)时,插入相应的条目:

vd_map[widget] = desc;