C ++根据用户输入设置二维数组维度

时间:2018-01-30 02:18:06

标签: c++ arrays

我正在尝试根据用户所需的行数和列数创建二维数组。我收到的错误是"使用未声明的标识符'行""。我搜索堆栈溢出搜索,但无法找到这样的场景,我想知道我在做什么错误下面是我的代码:

    #include <iostream>
using namespace std;

class Matrix{
    public:
    int matrixDimensions[rows][columns];

    void setMatrix(int x, int y){
        rows = x;
        columns = y;
   }
    int getMatrixDimensions(){
        return rows;
        return columns;

    }



    private:
    int rows;
    int columns;

};

int main(int argc, const char * argv[]) {
    int a;
    int b;
    Matrix matrixObject;

    cout << "Please enter the number of rows: " << endl;
    cin >> a;
    cout << "Please enter the number of columns: "<< endl;
    cin >> b;

    matrixObject.setMatrix(a, b);
    cout << "The number of rows and columns are : " << matrixObject.getMatrixDimensions();



    return 0;
}

谢谢大家的反馈很受欢迎。我不能使用矢量,谢谢你提及它们但是它不是一个选项。

2 个答案:

答案 0 :(得分:-1)

在C ++中,如果要声明一个数组而不考虑维度,则只能在编译时之前声明它。

例如,在运行时

期间,让 SIZE 成为用户输入
int arr[5]    // OK
int arr[SIZE] // NOT OK

如果要在运行时期间动态分配数组大小,则必须使用指针。

int* arr = new int [5] // OK
int* arr = new int [SIZE] // OK

看看 How do I declare a 2d array in C++ using new?

答案 1 :(得分:-1)

尝试在函数之前声明变量行和列。 C ++将逐行检查语法。所以可能是问题所在。