警告:扩展初始化程序列表仅适用于-std = c ++ 0x或-std = gnu ++ 0x

时间:2015-11-28 18:21:01

标签: c++ matrix

我尝试声明一个矩阵,当我编译时,我得到了这个:

extended initializer lists only available with -std=c++0x or -std=gnu++0x

当尝试另一种解决方案时,我得到了这个:

ISO C++ forbids variable length array 'A' (line 16)

以下是我上次尝试的代码:

#include<iostream>
#include<cmath>
#include<fstream>
#include<cstdlib>
using namespace std;

int main()
{

int m, l;

ifstream MatrixA ("A.txt");
MatrixA >> m;
MatrixA >> l;

int A [m][l];

for (int lineA = 0; lineA <= m; lineA++)
{
    for (int colA = 0; colA <= l; colA++)
    {
        A [lineA][colA];
    }
}

cout << "Matrix A: " << A[m][l] << endl;

return 0;

}

1 个答案:

答案 0 :(得分:5)

C ++不支持可变大小的内置数组。如果您需要可变大小的数组维度,则需要使用能够动态执行必要内存分配的内容。一个相对直接的选择是使用std::vector std::vector s:

std::vector<std::vector<int> > A(m, std::vector<int>(l));