初始化多维数组C++; 在C++中,当我想初始化一个长度为(例如整数)的数组时,我可以写< /p> int* tab; tab = new int[size];
在其他地方给出尺寸。但是,对于多维数组,我如何以同样的方式做到这一点呢?我不能只在第二行添加另一个维度,因为编译器不喜欢这样初始化多维数组C++; 在C++中,当我想初始化一个长度为(例如整数)的数组时,我可以写< /p> int* tab; tab = new int[size];,c++,multidimensional-array,initialization,C++,Multidimensional Array,Initialization,在其他地方给出尺寸。但是,对于多维数组,我如何以同样的方式做到这一点呢?我不能只在第二行添加另一个维度,因为编译器不喜欢这样 我想这是个简单的问题。我需要它,因为我正在写一个面向对象编程的赋值,2D数组是类的私有部分,它需要。。。在构造函数中构造(以2个维度作为参数)。如果在数组初始化之前获得高度/宽度参数,则可以尝试: int height = 10; int width = 10; //... int tab[heigth][width]; 如果您能负担得起std::vector而不是
我想这是个简单的问题。我需要它,因为我正在写一个面向对象编程的赋值,2D数组是类的私有部分,它需要。。。在构造函数中构造(以2个维度作为参数)。如果在数组初始化之前获得高度/宽度参数,则可以尝试:
int height = 10;
int width = 10;
//...
int tab[heigth][width];
如果您能负担得起
std::vector
而不是数组,则可以将其用作语法:
std::vector< std::vector<int> > matrix(rows, std::vector<int>(columns));
for (int i=0; i<rows; i++) {
for (int j=0; j<columns; j++) {
matrix[i][j] = i+j;
}
}
std::vectormatrix(行,std::vector(列));
对于(int i=0;i而言,使用std::vector
是安全的方法:
std::vector<std::vector<int>> mat(size1, std::vector<int>(size2));
别忘了清理资源:
for (std::size_t i = 0; i != size1; ++i) {
delete [] mat[i];
}
delete[] mat;
请看以下内容:-1
使用std::vector
。我听说过vector,但我想知道是否有一种方法可以与一维数组类似……”我听说过vector“因此,您已经听说过C++,现在是时候真正学习它了。您不能将运行时值作为自动数组的维度。这需要非标准扩展:VLA。
for (std::size_t i = 0; i != size1; ++i) {
delete [] mat[i];
}
delete[] mat;