#include <iostream>
#include<vector>
using namespace std;
int main()
{
//变长一维数组
int n;
cout<<"please input size of array:";
cin>>n;
//指针实现
int *p=new int[n];
cout<<"指针实现:"<<endl;
for(int i=0;i<n;i++)
{
p[i]=i+1;
cout<<p[i]<<" ";
}
cout<<endl;
delete[] p;//注意要注销指针p,使程序释放用new开辟的内存空间
//使用C++标准模版库(STL)中的vector(向量)实现变长数组
//Vector实现
vector<int> q(n);//声明变长数组
cout<<"Vector实现:"<<endl;
for(int i=0;i<n;i++)
{
q[i]=i;
cout<<q[i]<<" ";
}
cout<<endl;
//二维数组
int row,col;
cout<<"please input row and col:";
cin>>row>>col;
//指针实现
cout<<"指针实现:"<<endl;
int **r=new int*[row];//双指针
for(int i=0;i<row;i++)//对每一个*r(一共row个*r)申请一组内存空间
{
r[i]=new int[col];
}
for(int i=0;i<row;i++)
{
for(int j=0;j<col;j++)
{
r[i][j]=(i+1)*(j+1);
cout<<r[i][j]<<"\t";
}
cout<<endl;
}
//释放空间
for(int i=0;i<row;i++)
delete[] r[i];
delete[] r;
cout<<endl;
//Vector实现
cout<<"Vector实现:"<<endl;
vector<vector<int> > k(row, vector<int>(col));
for(int i=0;i<row;i++)
{
for(int j=0;j<col;j++)
{
r[i][j]=(i+2)*(j+2);
cout<<r[i][j]<<"\t";
}
cout<<endl;
}
return 0;
}