在cpp中声明向量数组

declaring array of vectors in cpp

本文关键字:向量 数组 声明 cpp      更新时间:2023-10-16

我是cpp STL的新手,我对矢量数组有疑问当我们声明像vectors <int> arr[100];这样的向量数组时我们也可以将其称为2-D矩阵。但如果我们谈论二维数组(int prr[100][100]),然后是prr[0],那么它将打印第0行中第一个数组的地址基本上,我想问为什么我们要声明vector <int> arr[100],因为arr[0]也会将数组的地址存储在第0个数组我们应该像vector <int*> arr[100]一样声明向量数组

但如果我们谈论二维数组(int prr[100][100]),然后是prr[0],那么它将打印第0行中第一个数组的地址

在某种程度上和某些情况下都是这样。

prr[0]int [100]类型的对象——100个ints的数组。

在某些情况下,prr[0]衰减为指向其第一个元素的指针,但并不总是正确的。

sizeof(prr[0])将是100 * sizeof(int)
&prr[0]的类型为int (*)[100),指针指向"100个int的数组",而不是int**

相反,

基本上,我想问我们为什么要声明vector <int> arr[100],因为arr[0]也将在第0个数组存储数组的地址,我们应该像声明向量数组的vector <int*> arr[100]一样声明

否,arr[0]不会将数组的地址存储在第0个数组。CCD_ 23属于CCD_。就这么简单。与数组不同,std::vector<int>类型的对象在任何上下文中都不会衰减为指向对象第一个元素的指针。因此,任何与CCD_ 26的进一步比较都没有意义。