一維數組與二維數組互轉

一維->二維
一個n個元素的一維數組,轉換爲r行c列的二維數組
對於一維數組中任意一個元素的下標 i (0 <= i < n)
其對應的二維數組下標爲 (i / c, i % c), 顯然, 只與列數c有關,而與行數r無關
可以寫成

int[] a = new int[n];
int[,] b = new int[r, c];

for (int i = 0; i < n; i++)
    b[i / c, i % c] = a[i];
或寫成

for (int i = 0; i < r; i++)
{
    for (int j = 0; j < c; j++)
    {
        b[i, j] = a[i * c + j];
    }
}

二維轉一維

int[,] a = new int[r, c];
int[] b = new int[r * c];
for(int i = 0; i < b.Length; i++)
    b[i] = a[i / c, i % c];

轉自;http://www.cnblogs.com/graphics/archive/2009/06/04/1496203.html

發佈了22 篇原創文章 · 獲贊 3 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章