【发布时间】:2018-10-11 05:56:33
【问题描述】:
对于旧版本的 C++²,C++11 std::unorderd_map¹ 的等价物是什么?我试过std::tr1::unordered_map,不幸的是我的编译器不支持它。
¹ 我真的需要 unordered_map 的好处,即平均 O(1) 时间访问。
² 我正在打印__cplusplus,上面写着1。我不确定编译器符合哪个 C++ 标准。
【问题讨论】:
-
什么是
c++1? -
无论您的
__cplusplus宏扩展为什么,都没有“C++1”之类的东西。获取编译器版本的更好方法是通过编译器的命令行选项(如果有)。 -
@NickyC 你能在我之前的评论中回答我的问题吗?说没有 std::unordered_map 的旧版本 (c++, compiler) 有意义吗?
-
我已经回答你了。
-
我假设您使用的是旧版本的 GCC - 4.7 之前的 GCC 版本有一个错误,即
__cplusplus宏的值将是 1 而不是199711L。您不能使用比至少使用 4 年的 GCC 更新的编译器来编译您的代码吗?
标签: c++ hashmap unordered-map