BGL:我如何从一个绑定的对象到一个顶点描述符
BGL: how can I get from a bundled object to a vertex descriptor?
问题是关于Boost Graph Library
的(不幸的是没有这样的标签)。
假设我已经通过使用Boost Graph Library
的绑定属性特征将Widget
实例与图的每个顶点相关联。类Widget
实现operator==
,并且与顶点相关联的所有小部件是不同的(即,对于任何一对顶点,widget1 != widget2
对于与这些顶点相关联的小部件成立)。
图形是否保持反向映射,即我是否可以轻松检索与给定对象相对应的顶点描述符?特别地,假设我有对象widget1
和widget2
,并且相应的顶点已经添加到图中。如何在两个对象之间(即,在对应的顶点之间)添加边?
我怀疑BGL本身无法提供从顶点属性到相应顶点描述符的映射,因为映射通常是m:1
多对一。许多顶点/描述符可以对应于相同的属性。尽管在您的情况下,您知道不同的顶点必须具有不同的属性,但BGL通常无法知道这一点。
当您创建图形时,您可能可以自己维护此映射(例如vd_map
),例如使用std:map
。当插入每个顶点及其属性(在本例中为Widget
)时,插入相应的条目:
vd_map[widget] = desc;
相关文章:
- 为什么我不能将一个对象push_back到属于另一个类的对象向量中?
- 在他自己的方法中,有可能将一个对象取消引用到另一个对象吗
- 从多个源构造一个对象,包括一个对象向量
- 为什么C++在将一个对象复制到另一个对象时需要对这两个对象进行低级常量限定
- 检查哪个对象调用了另一个对象的对象方法
- C++ 如何在将新对象分配给另一个对象时创建新对象
- 如何处理从一个对象传递到另一个在C++中具有公共抽象类的对象的消息
- 我有一个对象,它将在整个程序的持续时间内实例化,但一个类成员不会,我应该动态分配它吗?
- 包装一个对象并假装它是一个 int
- 为什么我可以在不重载 "=" 运算符的情况下将一个对象分配给另一个对象?
- 如何在qt中将信号和插槽与另一个对象连接 --解决了
- 如何使用函数将一个对象的输入复制到另一个对象中
- 选择一个元素而不是一个对象的数组的原因
- 为什么我可以使用 memcpy 将一个对象变量复制到另一个对象变量
- 如何将包含另一个对象向量的对象保存到文件中,并使用C++中的二进制文件从文件中读回?
- 我重载了 << 和 = 运算符。为什么当我将一个对象分配给另一个对象并尝试打印它时,我会被打印出来?
- 打印对象的映射,其中另一个对象作为键
- 如何通过另一个对象中的命令正确地从一个对象返回数据
- 为什么将两个对象分配给另一个对象后,两个对象不一样?
- 绘制一个对象,比较模具缓冲区的两个不同值