如何解决C ++中的哈希表/无序映射
| 我正在寻找我可以依赖的哈希映射模板,并在需要哈希表时使用。我试图使用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 ++中使用哈希表。
解决方法
在最新版本的C ++(c ++ 0x或c ++ 11)中,1ѭ(或更确切地说叫
unordered_map
)被称为C ++ 0x或c ++ 11,但是在此之前,包括您的编译器在内的许多编译器都支持它。您的编译器很好,可以在未经您明确同意的情况下阻止您编写潜在的不可移植代码。
就像其他人说的那样,在编译器选项中添加ѭ3可以使您使用hash_map,
请注意,在其他地方编译该代码将需要相当现代的c ++编译器。
(这对您来说可能不是问题。如果您只是自己学习或者不在办公室外共享代码,则应该没问题...)
, 按照错误消息的说明进行操作,如下所示调用g ++:
g++ -std=c++0x
接下来是其余的参数。
, 像错误消息所示那样进行编译时,只需使用-std = c ++ 0x!无论如何,C ++中的普通地图接口都进行了相当优化,因此,除非性能绝对重要,否则应只使用地图容器。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。