我正在寻找一个我可以依赖的哈希映射模板,并且只要我需要哈希表就可以使用。我试图使用hash_map但发现它现在已被弃用。使用unordered_map,但我得到以下错误 -
error: #error This file requires compiler and library support for the upcoming ISO C++ s tandard, C++0x. This support is currently experimental, and must be enabled with the -s td=c++0x or -std=gnu++0x compiler options.
现在,我完全糊涂了。我一直在java中使用hashmap,它非常直接。在c ++中并非如此。 指导我使用什么以及如何在c ++中使用哈希表。
答案 0 :(得分:4)
执行错误消息所说的内容,按如下方式调用g ++:
g++ -std=c++0x
其次是其他论点。
答案 1 :(得分:3)
答案 2 :(得分:3)
hash_map
(或更确切地说,unordered_map
,因为它被称为避免名称冲突)是在最新版本的C ++(c ++ 0x或c ++ 11)中,但许多编译器,包括你的,在此之前支持它。您的编译器非常好,并且在未经您明确同意的情况下阻止您编写可能的非可移植代码。
正如其他人所说,将-std=c++0x
添加到编译器选项将允许您使用hash_map,
请注意,在其他地方编译该代码将需要一个相当现代的c ++编译器。 (这对你来说可能不是问题..如果你只是自己学习或者不在办公室外共享代码,你应该没事......)