BGL:我如何从一个绑定的对象到一个顶点描述符

BGL: how can I get from a bundled object to a vertex descriptor?

本文关键字:一个 对象 顶点 描述 绑定 BGL      更新时间:2023-10-16

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

假设我已经通过使用Boost Graph Library绑定属性特征将Widget实例与图的每个顶点相关联。类Widget实现operator==,并且与顶点相关联的所有小部件是不同的(即,对于任何一对顶点,widget1 != widget2对于与这些顶点相关联的小部件成立)。

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

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

当您创建图形时,您可能可以自己维护此映射(例如vd_map),例如使用std:map。当插入每个顶点及其属性(在本例中为Widget)时,插入相应的条目:

vd_map[widget] = desc;
相关文章: