2017-04-13 135 views
0

如何在C++ 98中初始化unordered_map。我想下面:C++ 98:初始化std :: tr1 :: unordered_map

1. const std::tr1::unordered_map<std::string, int> mymap = {{key1,1}}; 
2. const std::tr1::unordered_map<std::string, int> mymap = {std::make_pair(key1,1)}; 

編譯器會拋出錯誤:

C++98 ‘mymap’ must be initialized by constructor, not by ‘{...}’ 

從我瞭解到#1,上述方法是從C++ 11日起支持初始化列表。你能告訴我如何初始化mymap嗎?我一直在想的是將一對一插入到mymap中。

回答

0

在C++ 98中,當你聲明它時,你不能初始化類似地圖的東西。您只能插入每對作爲單獨的聲明:

std::tr1::unordered_map<std::string, int> mymap; 
mymap.insert(std::make_pair(key1,1)); 
+0

我想到了這一點。如果有其他方法,尋找其他方法。 – Srini

+0

沒有任何。如果你希望地圖不變並且必須使用C++ 98,你可以使用地圖創建功能來返回你想要的地圖。 – jhauris

相關問題