背景: 我已經完成了作爲一項家庭作業的寫作遊戲。我們必須做一個十六進制遊戲。我決定使用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 –