我正在使用模板化类,我希望包含固定大小的数据数组,其大小取决于模板参数。一个简化的例子是
template<int D>
class Foo
{
private:
int m_array[D*(D+1)];
};
虽然变量大小的C数组通常是不可理解的,但在这里它们可能是合理的,因为D
很小并且很清楚有多少值m_array
成立(并且它不能改变)尺寸)。我的问题是
std::vector
并在构造函数中设置大小,我认为这会使代码不那么清晰。是否最好使用C ++ 11的std::array
,从而将上面示例中的相关行更改为std::array<int,D*(D+1)> m_array;
?答案 0 :(得分:4)
您的示例不是可变长度数组,就像C99中存在的那样。在那里,数组的大小只在运行时才知道。
在这里,您使用编译时常量来设置数组的大小。这样做没有问题。出去享受。