动态数组
定义:
动态数组是指在声明时没有确定数组大小的数组,即忽略圆括号中的下标;当要用它时,可随时用ReDim语句重新指出数组的大小。使用动态数组的优点是可以根据用户需要,有效利用存储空间。
特点
数组到底应该有多大才合适,有时可能不得而知。所以希望能够在运行时具有改变数组大小的能力。
动态数组就可以在任何时候改变大小。在Visual Basic中,动态数组最灵活、最方便,有助于有效管理内存。例如,可短时间使用一个大数组,然后,在不使用这个数组时,将内存空间释放给系统。
如果不用动态数组,就要声明一个数组,它的大小尽可能达到最大,然后再抹去那些不必要的元素。但是,如果过度使用这种方法,会导致内存的操作环境变慢。
C++-----申请动态数组
//一维动态数组
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
int *p;
cin>>n;//输入你想要的数组大小
p=new int[n];//向操作系统申请n+1个int 性连续空间
for(int i=0;i<n;i++)
{
p[i]=i;
cout<<p[i]<<" ";//输出0 1 2 3 4
}
delete []p;//记得释放
return 0;
}
//二维动态数组
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m;//n行数,m列数
cin>>n>>m;
int **p=new int*[n];//申请行
if((p)==0)
{
cout<<"fasle"<<endl;
return 0;
}
for(int i=0;i<n;i++)//申请列
{
p[i]=new int[m];
if(p[i]==0)
{
cout<<"fasle"<<endl;
return 0;
}
}
// 初始化
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
p[i][j] = i;
//输出
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
cout<<p[i][j]<<" ";
cout<<endl;
}
//释放内存
for(int i=0;i<n;i++)
delete p[i];
delete []p;
return 0;
}
以前天真的认为动态数组就是vector,所以顺便整理一下vector,
【点这里】