如何在C++中声明没有第一个大小的二维或多维数组?声明无大小的第二个数组
class numeric
{
public:
int int_array_numbers[][];
...
};
错误消息: 声明“int_array_numbers”作为多维数组必须针对所有维度边界除第一
如何在C++中声明没有第一个大小的二维或多维数组?声明无大小的第二个数组
class numeric
{
public:
int int_array_numbers[][];
...
};
错误消息: 声明“int_array_numbers”作为多维数组必须针对所有维度边界除第一
你可以从两个参数声明类为模板 像这样
template <int N, int M>
class numeric
{
public:
int int_array_numbers[N][M];
...
};
是的。谢谢@Luchian –
在这种情况下,'N'和'M'必须是编译时间常量。但是将它们作为构造函数的参数并不困难,一个'std :: vector
不能,C++不支持VLA的(可变长度数组)。
改为使用std::vector<std::vector<int> >
。
谢谢,但我不想使用向量。我需要使用标准库... –
@AliN你不想或者你不能?因为如果你可以但你只是不想,你应该克服它。 :) –
@AliN,因为当矢量不是标准库? o.O – Griwes
希望这种联系是有益的[此处输入链接的描述] [1] [1]:HTTP: //stackoverflow.com/questions/5737905/why-cc-allows-omission-of-leftmost-index-of-a-multidimensional-array-in-a-fun – Raj