顯示具有 陣列 標籤的文章。 顯示所有文章
顯示具有 陣列 標籤的文章。 顯示所有文章

1月 17, 2011

使用 new 動態建立二維陣列



1. 使用 new 來建立出 data[m][n] 二維陣列
int **data;
data = new int* [m]; /* 宣告一個陣列,其元素都是指標 */
for(int i = 0; i< m ; i++)
data[i] = new int[n];
2. 亂塞一些值(1~100 亂數)到陣列中
for (int i=0; i<m; i++)
for (int j=0; j<n; j++)
data[i][j] = 1+ rand() % (100-1+1);
3. 不用時要記得歸還空間
for(i=0; i<m; i++)
delete [] data[i];
delete [] data;

1月 08, 2011

Java Array

  public static void main(String args[])
{
int num[][]= new int[10][]; /* 這個是二維!!不要寫成new int[10] */

for (int idx=0; idx< num.length; idx++)
{
num[idx] = new int[idx]; /* 注意這邊的用法 num[idx] 各別生成 */
}
}

3月 29, 2010

[ASP.NET] Array copy

要實現 Array Copy 的方法有幾種:

(1) 使用 Array.Copy()
在行為上屬於 Deep Copy,也就是說原本的陣列資料會完全複製一份。

int [] src = new int[10];
int [] dst = new dst[10]; /* 由於是 Deep Copy 所以要配置空間 */
Array.Copy(src, dst, src.Length);

(2) 使用 Array.Clone()
在行為上屬於 Shallow Copy,也就是只會拷貝位址(address),
真正的實體只會存在一份,多個 pointer 指向同一陣列。

int [] src = new int[10];
int [] dst = Array.clone(src); /* 注意這邊的用法 */

3月 23, 2010

[ASP.NET] 陣列宣告

在 ASP.NET 下幾個陣列宣告的寫法:
(1) 一維陣列的情形
/* 中括號 [] 一定緊鄰著型別 */
int [] FOO = new int[5] {1, 2, 3, 4, 5};
int [] BAR = new int[] {1, 2, 3, 4, 5};
int [] foo = {1, 2, 3, 4, 5}; /* 精簡寫法 */

string [] Foo = new string[3] {"Jack", "Peter", "Tom"};
string [] Bar = {"Jack", "Peter", "Tom"}; /* 背起來 */
(2) 二維陣列宣告方式:
int [,] foo = new int[2,2] {{1,2}, {3,4}};
int [,] bar = new int[,] {{1,2}, {3,4}};
int [,] bar = {{1,2}, {3,4}};
(3) 不規則陣列(Jagged Array)宣告方式:
int [][] foo = new int[3][];
/* 宣告後再逐一進行初始化 */
foo[0] = new int[2] {1,2};
foo[1] = new int[ ] {1,2,3,4};
foo[2] = {1,2,3}; /* ERROR!! 要使用 new 配置空間 */