【C/C++学习笔记】--数组的用法

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 **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));

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]);

猜你喜欢

转载自blog.csdn.net/wxq_1993/article/details/86675064