ベクターのベクターを構築したいと思います。この質問はすでに多くの時間に掲載されていますが、私は満足のいく回答は見つかりませんでした。異なる種類のベクターのベクター
が- 各ベクトルは異なるタイプ
- を持つことができる私は、コンパイル時に型を知らない私はそれが含まれていますどのように多くのベクターがわからない
基本的には:そのため私は擬似コードでそのような何かを行うことができるようにしたいと思い 後で
types = ["char", "int", "double", "int"]
container<vector> x
foreach (type in types)
{
if (type == "char")
x.push_back(vector<char>)
else if (type == "int")
x.push_back(vector<int>)
else
x.push_back(vector<double>)
}
とその後、私はboost::any
が私を助けるかもしれないと思うが、私はまだブーストに精通していないよ例
x[0].push_back("a")
x[1].push_back(1)
x[2].push_back(3.1416)
のために行うことができるようにしたいと思います。
奇妙に聞こえても、本当にやりたいことです。私は構造体のベクトルを望んでいない、私は本当に異なるタイプのstd::vector
を含むコンテナ(どちらに関係なく)が欲しいです。私がバイナリファイルを読んでいるからです。ファイルのヘッダーにはデータの数とそのタイプが記述されていますが、ファイルごとに変更できます。したがって、コンパイル時にそれを知ることはできません。
**静的型付けされた**言語は、 'i []がコンパイル時定数式でないとき、' x [i] .push_back(...); – StoryTeller
'boost/std :: variant'を使用してください。 – geza
@geza:OPはコンパイル時に型が分からない場合、バリアントは役に立ちません。 '' any''は良いでしょうが、これは設計上の瑕疵の匂いがします。 – AndyG