一維或二維陣列,什么更快?我需要表示一個2D字段(軸x,y),我面臨一個問題:我應該使用一維數組還是2D數組?我可以想象,一維數組(y+x*n)的重新計算索引可能比使用2D數組(x,y)慢,但我可以想象到1D可能在CPU緩存中。我做了一些搜索,但只找到了關于靜態數組的頁面(并且聲明1D和2D基本相同)。但是我的數組必須是動態的。所以,什么是更快,較小(RAM)動態一維陣列還是動態二維陣列?謝謝:)
3 回答

開心每一天1111
TA貢獻1836條經驗 獲得超13個贊
一維和二維靜態陣列
尺寸:
兩者都需要同樣數量的內存。 速度:
您可以假設沒有速度差異,因為這兩個數組的內存應該是連續的(整個2D數組應該顯示為內存中的一個塊,而不是分布在內存中的一組塊)。(不過,這可能與編譯器有關。)
一維和二維動態陣列
尺寸:
2D數組將需要比一維數組稍多一點的內存,因為2D數組中指向分配的1D數組集所需的指針。(當我們談論真正的大數組時,這個微小的點才是很小的。對于小型陣列,相對來說,微小位可能是相當大的。) 速度:
一維數組可能比2D數組更快,因為2D數組的內存不會是連續的,因此緩存丟失將成為一個問題。
- 3 回答
- 0 關注
- 449 瀏覽
添加回答
舉報
0/150
提交
取消