2017-03-16 51 views
1

我有一种情况,我需要实现“map”,它接受任何Object类型参数,因为截至目前我不知道哪种类型的我将存储在Map中的参数。之后我需要将该地图存储到矢量中。 我写这样的:将模板类型参数的映射存储到C++中的Vector中: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

其地图取自unordered_map头文件 –

回答

1

由于您不知道地图中的对象类型,因此可以使用void *或unique_pointer。

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

或者,如果你实际上意味着所有的值从Object继承,则:

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

作为一个侧面说明,你从来不提键的类型,所以也许你的意思的std ::设置,而不是地图?