1

将具有未知节点顺序的图存储在向量中的最佳方法是什么。例如,我的节点以未知顺序出现,例如 35,23,89,200,12,89,569 等...这将会非常棒。可能有一些散列函数会起作用,但如果有一个可以区分节点的函数,请告诉我或者是否有任何其他方法。

谢谢

4

1 回答 1

1

我想到的最简单的解决方案是将它们按顺序插入到您的向量中,并创建一个map<int,int>从它们的值映射到它们的索引。

在您的示例中:

map[35] == 0
ma[[23] == 1
map[89] == 2
map[200] == 3
map[12] == 4
...

现在,访问节点ivector[map[i]]

编辑:
第二种可能性是使用 aset而不是vector来保存元素,但它可能并不总是需要 [set 没有重复项,并且不会按照您插入它们的顺序包含元素],但请考虑它是否适合您。

于 2012-01-25T09:47:36.713 回答