C++ 如何在Linux中定义嵌套哈希_映射?

C++ 如何在Linux中定义嵌套哈希_映射?,c++,linux,hashmap,nested,C++,Linux,Hashmap,Nested,我对散列映射(或无序映射)有问题。在MSVS2008中,我可以定义一个嵌套的hash\u映射,如: hash_map<int, hash_map<int, float>> nestedHashMap hash\u映射嵌套hashmap (省略相应的命名空间。) 我的问题是如何在Linux中定义nestedHashMap,因为如果我以相同的方式定义,则会出现编译错误。C++03需要在两个符号之间留出一个空格,您需要编写如下代码: unordered_map<int

我对
散列映射
(或
无序映射
)有问题。在MSVS2008中,我可以定义一个嵌套的
hash\u映射,如:

hash_map<int, hash_map<int, float>> nestedHashMap
hash\u映射嵌套hashmap
(省略相应的命名空间。)


我的问题是如何在Linux中定义
nestedHashMap
,因为如果我以相同的方式定义,则会出现编译错误。

C++03需要在两个
符号之间留出一个空格,您需要编写如下代码:

unordered_map<int, unordered_map<int, double> >
无序地图
C++11修复了这个“bug”

我猜您在编译程序时错过了
-std=c++11


Visual C++的最新版本自动启用C++ 11的特性,而不需要任何命令行选项,但是GCC和CLAN需要代码> -STD= C++ 11 < /C> >以启用C++ 11特性。你能告诉我们你得到的错误吗?如果你能从编译器中显示准确的错误信息,那将非常有用。我们只能猜测您是在C++98/C++03模式下编译的(到目前为止,默认为g++模式),并且忘记了只有在C++11中才允许“>>”使用双闭合角括号。