【发布时间】:2018-05-02 00:43:48
【问题描述】:
所以我目前正在用 c++ 编写一个程序,我想做以下声明:
methodOne()
{
vector<int> one;
vector<int> two;
... assigning to one and two...
int a = one.size();
int b = two.size();
methodTwo(a, b);
}
methodTwo(int a, int b)
{
int array[a][b];
}
当我尝试这个时,我得到一个错误:a 和 b 必须是常量
我试图将 a 和 b 分配给 const int a,const int b。然而,这无济于事。我想知道是否有人知道我可以如何解决这种错误。
提前感谢您提供的任何帮助!
【问题讨论】:
-
可变长度数组不是标准的 c++。
-
它不容易“修复”,但您可以将数组更改为其他内容,例如另一个向量。
-
编译器所说的“a 和 b 必须是常量”的意思是它们必须是
constexpr(即在编译时已知)。
标签: c++ arrays variable-assignment