【发布时间】:2012-11-24 01:43:04
【问题描述】:
有什么方法可以使vertex_descriptor 的boost::graph 可序列化? Boost 确实定义了<boost/graph/adj_list_serialize.hpp> 用于序列化整个图结构,但不是单独定义。
我有一个包含 3dvector(顺便表示 X、Y、Z 坐标中的 3d 世界)顶点的邻接列表图
typedef boost::adjacency_list<
boost::listS,
boost::listS,
boost::undirectedS,
3dvector>
Graph;
typedef Graph::vertex_descriptor VertexId;
typedef Graph::edge_descriptor EdgeId;
但是我还需要保留一个单独的映射信息以供查找,这就是问题所在:boost 不知道如何序列化VertexId。它们存储在 STL 映射中,如下所示:std::map<string, VertexId> 以便字符串查找可以返回图中的正确顶点,因为 vertex_descriptor 本质上是指向图中特定顶点的引用。
我的意图是将图形和地图都序列化到一个文件中,但我找不到序列化 vertex_descriptor 的方法。
【问题讨论】:
标签: serialization boost graph stl map