如果你的unordered_map头文件报错请看这里

请将include<unordered_map>头文件换成下面代码

 1 #if(__cplusplus == 201103L)
 2 #include <unordered_map>
 3 #include <unordered_set>
 4 #else
 5 #include <tr1/unordered_map>
 6 #include <tr1/unordered_set>
 7 namespace std
 8 {
 9     using std::tr1::unordered_map;
10     using std::tr1::unordered_set;
11 }
12 #endif

这个解决方法主要是依靠 __cplusplus 这个宏在不同C++版本中的值不同。 对于(能够使用且)使用了 -std=c++0x 或者 -std=c++11 编译选项的编译过程,__cplusplus 的值是 201103L,否则则是其他值。

结论

上述方法最低大概只能支持到C++98这个标准了,因为到了C++98才开始有tr1/unordered_map,所以你的编译器如果连C++98都不支持的话,那就乖乖用远古时代流传至今的map吧。

posted @ 2018-08-21 11:11  llllrj  阅读(12995)  评论(0编辑  收藏  举报