所以我正在使用以下类型的提升图:
typedef boost::adjacency_list<boost::listS, boost::vecS, boost:directedS, VertexT, EdgeT> GraphT
VertexT 和 EdgeT 都是保留我需要的许多属性的类。这些是捆绑的属性。我不确定我想使用 bgl 的某些方式是否可行,因此如果您熟悉它们,我们将不胜感激。
VertexT 和 EdgeT 被认为是多态基类。我的理解是 bgl 并不意味着用于指向这些属性的指针。如何使用 BGL 处理多态顶点和边属性?我想过使用共享指针,但我更愿意自己管理内存。此外,当使用 boost::get 为 boost 布局生成位置图时,这似乎可以防止出现问题。
现在我已经通过让顶点包含另一个指向真正多态类的指针来解决这个问题。但这似乎太复杂了。有什么建议么?