私のクラスのメンバはstd:array
のベクトルになりますが、クラスのユーザによって渡された変数によって配列のサイズを決定します。これは可能ですか?私は、初期化子リストでそうしようとしましたが、私は非常に明白なエラーメッセージが出ます:実行時にサイズが決定された静的配列のベクトル
#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) {}
};
注:ここでは
csvParser.cpp:18:35: error: invalid use of non-static data member ‘Parser::featureCount’ std::vector<std::array<lDouble, featureCount> > data;
は私の試みだが可能であれば、私はのユーザーのための希望します配列のサイズを決定するために値を渡すことができるクラスですが、私の試みはが何であるかを示すものではありません。
が病気に短くなり、STDの大きさは::配列を使用すると、ネストされたコンテナを使用して喜んでいる場合、一方の時間値 –
をコンパイルする必要があり、なぜあなたはベクトルのベクトルに落ち着くいけませんか? –
'sizeof(std :: vector)'が 'sizeof(T)'によって異なるとします。 (これはほとんど確かではありませんが、それを禁止するルールはありません)あなたがこれを行うことが許されていれば、 'sizeof(Parser) 'はどうなりますか? –