2017-03-16 52 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 ::設置,而不是地圖?