前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >EasyC++22,二维数组

EasyC++22,二维数组

作者头像
TechFlow-承志
发布2022-08-26 16:49:18
3380
发布2022-08-26 16:49:18
举报
文章被收录于专栏:TechFlow

作者 | 梁唐

大家好,我是梁唐。

这是EasyC++系列的第22篇,简单聊聊二维数组。

二维与多维数组

声明与使用

在我们之前的文章当中,提到的数组都是一维的,也就是一行数据。

但有的时候,我们想要存储的数据往往是高维的。比如一张表格,比如一个矩阵等等。这个时候我们就需要用到二维或是多维数组了。

多维数组的定义和一维差别不大,只需要标记清楚每一个维度的大小即可:

代码语言:javascript
复制
int matrix[100][100];

这表明我们申请了一个100 x 100的二维数组,我们访问数组元素的方式也依然一样,通过方括号表明想要访问的下标即可:

代码语言:javascript
复制
cout << matrix[10][10] << endl;

同理,更多维度也是一样的方式操作:

代码语言:javascript
复制
int mt[100][100][100];

cout << mt[10][10][10] << endl;

初始化

二维数组的初始化也和一维数组类似,只不过同样由于维度的增加,我们需要增加一重花括号的嵌套:

代码语言:javascript
复制
int matrix[2][5] = {
    {0, 1, 2, 3, 4},
    {1, 2, 3, 4, 5}
};

多重for循环

我们要使用二维或者多维数组的时候,应该怎么样去遍历它当中的每一个元素呢?

显然我们不可能全靠手动编写,其实方法也很简单,我们只需要把for循环也嵌套起来,成为多重循环,就可以访问了。

例如:

代码语言:javascript
复制
int matrix[10][10];

for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 10; j++) {
        cin >> matrix[i][j];
    }
}

我们来简单地剖析一下代码,我们将两种循环叠加在了一起。对于最外层的循环来说,内部的for循环代码会被视为一整块。也就是说当内部的j完成从0到10完整地遍历一遍之后,对于外层的循环i来说,才算是完成了一次执行。所以这就意味着,i每变化一次,j都需要完成一整个遍历。

所以对于双重循环来说,它的执行复杂度是O(nm) ,其中n和m分别是两重循环的长度。

同理,如果需要访问更多维度的数组,我们可以嵌套更多层循环。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Coder梁 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 二维与多维数组
    • 声明与使用
      • 初始化
        • 多重for循环
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档