zoukankan      html  css  js  c++  java
  • C++多维数组

    二维数组

    我们先来看二维数组,所谓二维数组,就是一维数组里面的各个元素分别是一个一维数组。二维数组可以用来表示表或者矩阵。

    声明二维数组

    语法如下:

    //声明二维数组
    elementType arrayName[ROW_SIZE][COLUMN_SIZE];
    
    //elementType是返回值类型
    //arrayName是二维数组名字
    //ROW_SIZE和COLUMN_SIZE分别表示行和列的大小

    一个二维数组可以分为两部分看。

    第一部分:elementType arrayName[ROW_SIZE]

    这一部分看以先看成一个一维数组,它的大小为ROW_SIZE,也就是说,里面将要放ROW_SIZE个数组。

    第二部分:[COLUMN_SIZE]

    这一部分说明了,在一维数组elementType arrayName[ROW_SIZE]中的小数组的大小

    假如我声明了一个二维数组int array[2][3],在内存中的表示应该是:[[0, 0, 0], [0, 0, 0]],即

    0       0       0       0       0       0      

    用人易理解的表格或者矩阵表示应该为:

    0        0        0
    0 0 0        

     

    为二维数组赋值

    二维数组的赋值语法同一维数组一样,确认要赋值元素的位置,然后赋值即可。

    arrayName[a][b] = value;
    //0 <= a <= ROW_SIZE-1
    //0 <= b <= COLUMN_SIZE-1

    初始化的二维数组:

    int m[4][3] = 
        {{1, 2, 3}, 
         {4, 5, 6}, 
         {7, 8, 9}, 
         {10, 11, 12}
        };

    在初始化二维数组时,行号可以省略,但是列号一定不可以省略。

    同样要注意的是,数组的第一个下标是0。所以赋值语句array[1][2] = 1;执行后,上述表格会变为:

    0        0        0       
    0        0        1      

     

    操作二维数组

    二维数组的操作也同一维数组类似。不过一维数组一般使用一层循环语句

    for (int i = 0; i < SIZE; i++) {
        //body
    }

    而二维数组一般使用两层嵌套循环语句

    for (int i = 0; i < ROW_SIZE; i++) {
        for (int j = 0; j < COLUMN_SIZE; j ++) {
            //body
        }
    }

    如下面的打印数组元素:

    #include <iostream>
    
    using namespace std;
    
    const int COLUMN_SIZE = 5;
    
    int main()
    {
    //行号可以省略,但是列号一定不能省略
    int list[][COLUMN_SIZE] = {{1, 2, 3, 4, 5},{6, 7, 8, 9, 10}}; for (int i = 0; i < 2; i++) { for (int j = 0; j < COLUMN_SIZE; j ++) { cout << list[i][j] << endl; } } return 0; }

    运行结果:

     二维数组作为函数参数

    同一维数组,但是必须要指明列的大小。

     

    多维数组

    多维数组就是多层的数组。比如三维数组就是一个一维数组,里面的元素是二维数组。更高维的数组也是同理。

    多维数组与二维数组很类似,这里就不过多赘述。

    注:不论几维数组,在内存中均是线性排列的。

  • 相关阅读:
    【BZOJ4103】异或运算(THUSC2015)-可持久化trie树+位运算
    【BZOJ4103】异或运算(THUSC2015)-可持久化trie树+位运算
    Tempter of the Bone(dfs+奇偶剪枝)题解
    逃离迷宫(BFS)题解
    Almost Union-Find (并查集+删除元素)题解
    POJ 1182 食物链(并查集+偏移向量)题解
    Connections in Galaxy War (逆向并查集)题解
    A^B mod C (快速幂+快速乘+取模)题解
    hdu1272 小希的迷宫 (并查集)
    大明A+B(大数相加)解题报告
  • 原文地址:https://www.cnblogs.com/bwjblogs/p/12659118.html
Copyright © 2011-2022 走看看