首页 > 解决方案 > 如何声明和初始化特定大小向量的二维数组?

问题描述

对于单个向量,我们只需执行以下操作:

vector<T> v(size);

但是,在制作二维数组时,语法的这种逻辑扩展不起作用:

vector<T> v(size)[N][N];

如何做到这一点,为什么 C++ 不能这样工作?

标签: c++

解决方案


Vector 动态分配内存,因此您无需提前指定 vector 的大小。您可以简单地将向量声明为

vector<vector<int>>v;

如果您想使用一些预定义的值(例如 0 或其他值)对其进行初始化,那么

   vector<vector<int> >vect(row);  

    for (int i = 0; i < row; i++) { 
        vect[i] = vector<int>(col); 
        for (int j = 0; j < col; j++) 
            vect[i][j] = j + 1; 
    } 

或者,如果您知道所有元素并且尺寸很小,就可以这样做

vector<vector<int> >vect{ { 11, 12 }, { 434 }, { 9, 10 } }; 

推荐阅读