2017-04-13 230 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