多維陣列 (C# 程式設計手冊)
不規則陣列 (C# 程式設計手冊)
看了 MSDN 的 C# 程式設計手冊,
多維陣列:
- 同一維度下元素的大小都一樣。
- 子元素大小可以不一樣。
- 子元素也是陣列,所以又稱「陣列中的陣列」。
再來是兩者的宣告、使用方式也不一樣。
不規則陣列初始化時,對一個子元素都要分別 new 一次陣列,感覺較麻煩。
但我又比較喜歡不規則陣列的操作方式和特性。
所以就找了一下「多維陣列」和「不規則陣列」效能的比較。
http://stackoverflow.com/questions/597720/what-is-differences-between-multidimensional-array-and-array-of-arrays-in-c
http://stackoverflow.com/questions/4648914/why-we-have-both-jagged-array-and-multidimentional-array
以上兩篇都提到「不規則陣列」的效能比較好,老實說,跟我猜的不一樣。
後來又找到一篇文章
以嵌套數組(Jagged Array)取代多維數組(Multi-Dimensional Array)
很詳細的說明為什麼 C# 的「不規則陣列」的效能比「多維陣列」好。
主要是因為 CLR 最佳化的影響。
所以雖然不規則陣列在一開始要宣告子元素數量較麻煩外, 但比較使用方式和性能,如沒特殊需求,我應該也會選擇用不規則陣列。
沒有留言:
張貼留言