亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

一維或二維陣列,什么更快?

一維或二維陣列,什么更快?

C++ C
吃雞游戲 2019-07-11 20:27:12
一維或二維陣列,什么更快?我需要表示一個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數組的內存不會是連續的,因此緩存丟失將成為一個問題。


使用最有效和最符合邏輯的方法,如果您面臨速度問題,那么重構。


查看完整回答
反對 回復 2019-07-11
  • 3 回答
  • 0 關注
  • 449 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號