我有另一个关于 Boost 图形库的问题,我无法通过谷歌搜索或阅读文档来回答自己。它与我的其他问题没有直接关系,所以我想我最好开始一个新线程。
我有一个具有邻接布局的图,并使用捆绑属性来访问节点和边的数据。为方便起见,我在 Graph 中使用了 typedef。因此,我可以通过键入以下内容来访问存储的数据,例如对于 vertex_descriptor:
Graph[my_vertex_descriptor].setX(4);
Graph[my_vertex_descriptor].setY(10);
现在我想定义一个对数据存储对象的引用,以便能够输入类似的内容:
typedef Graph[vertex_descriptor]::type Vertex;
Vertex v = Graph[my_vertex_descriptor];
v.setX(4);
v.setY(10);
通过这种或类似的方法,我试图避免对映射值进行不必要的重新计算,该映射值是通过使用[]operator
映射和特定描述符对象访问的。我的顶点和边包含大量数据,因此在某些情况下,我当前的代码会产生许多相同值的重新计算来处理这些数据。这似乎很难看。
有谁知道它是否有可能实现我想要做的事情?