二维数组

 二维数组定义:

      一般形式:类型说明符 数组名[常量表达式1][常量表达式2]

      int a[2][3];

 

 

   用C++ STL的vector定义:

    vector< vector<int> > Array( 2, vector<int>(0) ); //定义行数为2

    for(int i=0; i<2; i++)

      Array[i].resize(3);  //定义列数为3

    

    二维数组的初始化:

      分段赋值:int a[2][3]={{1, 2, 3},{4, 5, 6}}  //行中的常量表达式可以省略;列中的不可或缺

    连续赋值:int a[2][3]={1, 2, 3, 4}  //部分元素赋值,其后自动赋值为0

    二维数组的参数传递:

    void fun(int a[][3]){...}  //注意数组a传递参数后则退化为指针

    二维数组的动态分配与释放:

    int **a=new int*[2];

      for(int i=0; i<2; i++){

      a[i]=new int[3];

    }

    ////////////////////////////

    for(int i=0; i<2; i++){

      delete[] a[i];

    }

    delete[] a;

  二维数组的指针:

    int **p=a;  //指针p相当于a

    *p <=> a[0]  ;  *(p+i) <=> a[i]  ;  *(*(p+i)+j) <=> a[i][j]

    二维数组的行列计算:

    总大小:T=sizeof(a)/sizeof(a[0][0])

    列数:N=sizeof(a[0])/sizeof(a[0][0]);    Array[0].size()  //vector类型需要深入“内部”找到列的大小

    行数:M=T/N;    Array.size() //vector类型直接能找到行的大小

posted @ 2015-04-09 20:34  LarryKnight  阅读(295)  评论(0编辑  收藏  举报