创建二维数组

本文介绍了如何在C++中使用动态数组(new int[]和new int*[n])创建一维和二维数组,重点讲解了堆区分配、指针操作及正确释放内存的方法。还探讨了使用vector容器实现二维数组的便捷方式。
摘要由CSDN通过智能技术生成

当定义数组时,若数组的长度为变量时,我们通常需要采用动态数组的方法去new一下

对于一维数组:

int*p=new int[n];

//在堆区创建一个长度为n的一维数组,并用指针p来接收它

就大功告成了。二维数组在底层上可以看作为多个一维数组封装在一起。

二维数组,我们不能按照一维数组那样直接在堆区开辟。比如

int*p=new int[m][n];//这是❌的

而以下就是我搜索到的两种方法:

1.在堆区开辟二维数组

int**p=new int[m] ;//创建一个指针数组

for(int i=0;i<m;i++)
{p[i]=new int[n]} ;//其中每一个p[i]都是一个在堆区开辟的数组

这样便实现了在堆区创建一个二维数组matrix[m][n]

使用这个方法最应该注意的就是对于二维数组中的每个一维数组应该单独释放;

for(int i=0;i<m;i++)//先释放指针数组中每个指针指向的数组
{ delete []p[n] ;p[i]= NULL }
delete []p; p=NULL;//再释放指针数组本身

2.使用vector容器开辟二维数组

vectorrongqi可以看作是一个数组,那么二维数组就可以使用vector容器嵌套vector容器来实现

对于一个vector容器,可以这样初始化:

vector<int>m(n,elem)//创建一个vector容器且将n个elem拷贝给自身

而我们可以借此创建vector容器嵌套:

vector<vector<int>>matrix(m,vector<int>(n,0))://创建一个vector容器,其内包含m个具有n个元素的vector容器,并将所有元素初始化为0;或者可以说创建一个m行n列的二维数组,数组中所有元素被初始化为

二维数组其实就可以看作为多个一维数组相加,使用嵌套vector容器实现多个vector相加;

因此便实现了同样的作用

即创建了二维数组:matrix[m][n]

刚学习不久C++;可能有写的不是很好的地方,烦请各位大佬们指正,谢谢!!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值