问题是关于Boost Graph Library
(遗憾的是没有这样的标签)。
假设我已使用Widget
的捆绑属性功能将Boost Graph Library
实例与图表的每个顶点相关联。类Widget
实现operator==
,并且与顶点相关联的所有小部件都是不同的(即,对于任何顶点对,widget1 != widget2
保持与这些顶点相关联的小部件)。
图表是否保持反向映射,即我可以轻松检索与给定对象相对应的顶点描述符吗?特别是,假设我有对象widget1
和widget2
,并且相应的顶点已添加到图表中。如何在两个对象之间添加边(即在相应的顶点之间)?
答案 0 :(得分:0)
我怀疑BGL本身不能提供从顶点属性到相应顶点描述符的映射,因为映射通常是m:1
多对一。许多顶点/描述符可以对应于相同的属性。即使在你的情况下,你知道不同的顶点必须具有不同的属性,BGL通常无法知道。
您可以在创建图表时自行维护此映射(例如vd_map
),例如使用std:map
。当您插入每个顶点及其属性(在这种情况下为Widget
)时,插入相应的条目:
vd_map[widget] = desc;