我正在从JSON文件中的数据创建图,我希望当我遍历图的边和顶点(例如in_edges()、vertices()或topological_sort())时,无论插入顺序如何,都是完全相同的顺序。换句话说,即使我打乱了JSON的顺序,也要生成相同的图。
我目前使用VecS作为我的顶点和边类型-切换到SetS可以实现这一点吗?
我目前正在考虑使用一个围绕VertexDescriptor和EdgeDescriptor的 Package 器结构,以及一个围绕boost图的 Package 器类,这样我就可以在内部遍历图,并返回Vertex/EdgeDescriptor Package 器结构的排序。
1条答案
按热度按时间dxpyg8gm1#
你并没有展示任何例子,让我想象一个例子,以及我可能如何解析这些。
让以下JSON文档表示相同的图:
字符串
然后随机翻转所有可能的属性,并随机重新排序数组元素,重新格式化字符串以包含转义符等:
型
我建议使用一个helper函数来从这些文档中构建等价的图:
型
现在,我假设简单的顶点id为
[0, numvertices)
。注意边在添加到图中之前是如何在set<>
中排序的。以下是构建邻接列表后的组合列表,显示了等价性:
Live On Coliru
型
印刷
型