如何消除 g++ 的 hash_map 废弃警告?

9

当我编译一个使用hash_map的c++应用程序时,我在g++ 4.3.2上得到了以下警告:

您正在使用不推荐使用的头文件。要消除此警告,请使用符合ANSI标准的头文件或使用-Wno-deprecated编译器标志。

9> #include <ext/hash_map>

这个问题应该使用什么替代方案?我在谷歌上搜索了一段时间,除了遇到类似的问题外,没有找到任何解决方案。

为什么这个人的问题被编辑成与答案相符? - Brian Neal
3个回答

18

我在谷歌上第一次搜索 "g++ hash_map deprecated",跳转到 一个页面 ,其中包括一个替代过时头文件和类的列表。

对于 hash_map,该列表建议使用 unordered_map,在 unordered_map 头文件中。这个类是 TR1 新增的。


由于某些原因,我在谷歌上得到了不同的结果,但这是一个完美的回答。谢谢! - Adam
我猜我已经教会了谷歌更多关于我想看到哪些结果的知识。愉快编码! - Rob Kennedy
6
我在谷歌上第一次搜索这个问题时,找到的结果是SO上的一个提问......该死的海森堡!(举起我的拳头威胁地晃了晃) - Michael Burr
还要注意这是C++11的特性,因此您可能需要在编译器中启用它。 - Chris

6
我相信新的数据结构被称为unordered_map
<tr1/unordered_map>

发现在std :: tr1命名空间中。


2
在包含 时,不要忘记添加以下编译器选项:"-std=c++0x",否则编译器会报错。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接