我只想创建一个二维数组并为其赋值。我该如何解决? (我在评论中提到了错误。)
using namespace std;
class array{
private:
size_t m; //error: invalid use of non-static data member 'array::m'|
size_t n; //error: invalid use of non-static data member 'array::n'|
int array[m][n];
public:
array():m(0),n(0){
}
array(const int &m,const int &n):m(m),n(n){
}
//method set array
void setArray(){
for (size_t row=0;row<m;row++){
for(size_t col=0;col<n;col++){
cin>>array[row][col]; //error: expected primary-expression before '[' token
}
}
}
};
最佳答案
执行此操作的简单方法是使用 vector
。
#include <vector>
#include <iostream>
class array {
private:
std::vector<std::vector<int>> array;
public:
array() {
}
array(int m, int n) : array(m, vector<int>(n)) {
}
void setArray() {
for (size_t row = 0; row < array.size(); row++) {
for (size_t col = 0; col < array[row].size(); col++) {
std::cin>>array[row][col];
}
}
}
};
使用 vector 意味着您不必自己进行动态内存分配,从而使代码更安全、更易读。
关于c++ - 无法创建 array2d,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57071662/