1.一维数组的申请
C++: new 类型 [初值]
C: (类型说明符*) malloc (size)
int a[5]={0};
auto len_a=sizeof(a)/sizeof(a[0]);
int * a1=new int[len_a+1];
int * a2= (int*)malloc(sizeof(int)*10);delete []a1;
free( a2);
STL中vector的使用:
int a[5] = {1,2,3,4,5}; //通过数组a的地址初始化,注意地址是从0到5(左闭右开区间)
vector<int> b(a, a+5);
vector<int> a3;
vector<int> a4(10,0)
int len_a3=a3.size();
for(int i=0;i<10;i++)
a3.push_back(i);for(auto it=a3.begin();it!=a3.end();it++)
cout<<*it<<" ";
2.二维数组的申请
在C++中,数组可以被视为一种类型——但是,不存在‘二维数组’这种类型。二维数组本身会被解释成一个一维数组:这个数组的元素类型为另一种一维数组。比如int[2][3]这个二维数组,它会被编译器视作一个元素类型为‘int[3]’的一维数组。
二维数组求行数和列数:
int A[3][4]={0};
int rows=sizeof(A)/sizeof(A[0]);
int cols=sizeof(A[0])/sizeof(int);
创建一个3*4的二维数组
int array[m][n]; //m和n可以是函数的参数
memset(array,0,sizeof(array)); //使用memset时,只能将数组值设为0或者-1
int **a4=new int*[3];
for(int i=0;i<3;i++)
a4[i]=new int[4];
for(int i=0;i<3;i++)
delete[]a4[i];
delete [] a4;
int (*p)[line] = new int[row][line];
删除二维数组:
delete []p;
STL中vector容器的使用:
vector<int*> v1; vector<vector<int>> v2(10,vector<int>(5)); //创建一个10行5列的数组
v2.size(); //行数
v2[0].size();// 列数
int array1[3][2]={1,2,
3,4,
5,6}
v1.push_back(array1[0]);
v1.push_back(array1[1]);
v1.push_back(array1[2]);
二维数组赋值:
vector<vector<int>>mapp;
vector<int>a;
for (int i = 0; i < 5; i++)
{
a.clear();
for (int j = 0; j < 5; j++)
{
int temp;
cin >> temp;
a.push_back(temp);
}
mapp.push_back(a);
}