在向量中存储具有未知节点顺序的图的最佳方法是什么。例如,我有节点以35,23,89,200,12,89,569等未知顺序进入...我想以这样的方式存储它们,即内存不会浪费,如果在恒定时间内节点被有效访问这将会非常棒。可能是某些哈希函数可以工作,但如果有一个可以区分节点,请告诉我或是否有任何其他方法。
谢谢
答案 0 :(得分:1)
我想到的最简单的解决方案就是按顺序将它们插入到向量中,并创建一个map<int,int>
来映射它们的值到它们的索引。
在你的例子中:
map[35] == 0
ma[[23] == 1
map[89] == 2
map[200] == 3
map[12] == 4
...
现在,以i
vector[map[i]]
修改强>
第二种可能性是使用set
代替vector
来保存元素,但可能并不总是需要[set没有重复,并且不会按顺序包含元素插入它们,但考虑它是否适合你。