背景: 我已经完成了作为一项家庭作业的写作游戏。我们必须做一个十六进制游戏。我决定使用2d节点向量来实现该板,并使用2个向量来跟踪节点邻居的x和y坐标。我用来确定获胜者的路径寻找算法与Dijkstra的相似。速度(成对的矢量)vs(成对的矢量)C++
我意识到使用2个向量的缺点是它们必须始终保持同步,但我在问速度。我也意识到,实现该板的更快方法可能是使用1d矢量(我在完成该程序时意识到了这一点)。
问题:就原始速度而言,如果使用双向量向量来实现,路径搜索算法会以2个向量运行得更快以跟踪(x,y)还是算法运行得更快?
当提供一个小型的自包含代码示例时,可以最好地回答这类问题,当你完成这些时,你有90%的方法可以构建自己的基准测试。 – DavidO
我在过去做过这样的事情,而不是担心'(x,y)'中的对,我只是将这些对转换为整数((* x Number_Of_rows + y)),这就是我用来存储每个对在板上的个人位置。邻居以类似的方式存储,其中每个节点将存储邻居的“std :: list” –
smac89
也许你想阅读http://stackoverflow.com/questions/7274268/which-is-faster-vector-of - 结构或向量编号 尽管它是一个繁重的阅读,但它们的实现的增强文档可以对Djikstra具体有更多的了解:http://www.boost.org/doc/libs/1_55_0/libs /graph/doc/dijkstra_shortest_paths.html –