我希望我的类的成员是std:array
的向量,但我希望数组大小由类的用户传入的变量确定。这可能吗?我尝试使用初始化列表进行此操作,但是我收到了非常明显的错误消息:
csvParser.cpp:18:35: error: invalid use of non-static data member ‘Parser::featureCount’ std::vector<std::array<lDouble, featureCount> > data;
这是我的尝试:
#include <vector>
#include <array>
typedef long double lDouble;
class Parser {
const size_t featureCount;
std::vector<std::array<lDouble, featureCount> > data;
public:
Parser(size_t numFeatures) : featureCount(numFeatures) {}
};
注意:如果可能,我希望类的用户能够传入值来确定数组的大小,但我的尝试并不表示有什么要完成,我愿意接受任何建议。
答案 0 :(得分:-1)
std :: array是使用C样式数组实现的。这就是您无法在运行时确定大小的原因。 如果需要在运行时更改大小的数组,请使用std :: vector,或使用以下方法。
class Parser
{
private:
size_t size;
std::vector<lDouble*> data;
public:
Parser(const size_t& size)
: size(size)
{
lDouble* arr = new lDouble[size];
data.push_back(arr);
}
};