• 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; }

    运行结果:

     二维数组作为函数参数

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

     

    多维数组

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

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

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

  • 相关阅读:
    Redis常用配置说明
    Redis入门知识
    分布式理论基石CAP理论
    MySQL之视图
    MySQL之事务控制总结
    MySQL之标识列(自增长列)设置起始值与步长
    LeetCode 543. Diameter of Binary Tree(两节点最长路径)
    LeetCode 110. Balanced Binary Tree(平衡树)
    LeetCode 104. Maximum Depth of Binary Tree(求树的高度)
    LeetCode 328. Odd Even Linked List(链表元素按奇偶聚集)
  • 原文地址:https://www.cnblogs.com/bwjblogs/p/12659118.html
Copyright © 2020-2023  润新知