2017-03-16 7 views
1

を、私は今のところ私は、どのタイプのを知っていない、ので、任意のオブジェクトの型の引数を取るように、私は「マップ」を実装する必要がある状況があります私はマップに保存する引数。後でそのマップをベクトルに格納する必要があります。 私は次のように書かれている::Visual Studioの

vector<Map>vect; 

しかし、コンパイラは言う、私は地図の引数の型を指定する必要があります。上記のように宣言する方法はありますか?私がテンプレートを実装する必要がある場合は誰でもマップ内にテンプレートを実装する方法を明確に言うことができます。私はC++に非常に新しいです。 Javaでは、マップを直接ArrayListに格納することができますが、C++では地図が非常に複雑です。私を助けてください。

+0

可能な複製:http://stackoverflow.com/questions/4037346/map-that-c​​an-take-any-basic-type-in​​side –

+0

'Map'はあなたが書いたものか、' std :: map'か何か?それは '地図'ですか? – doctorlove

+0

は、そのわずか1型を有する 'その場合には、かかわらず、「マップ」unordered_mapヘッダファイル –

答えて

1

マップ内のオブジェクトの種類がわからないので、void *またはunique_pointerを使用できます。

std::vector<std::map<KeyType, void*>> vect; 

それとも、実際にすべての値が、その後、Objectから継承されていることを意味する場合:サイドノートとして

std::vector<std::map<KeyType, Object*>> vect; 

を、あなたはキーの種類に言及したことがないので、おそらくあなたがSTDを意味::設定の代わりに、地図?