hash_map是 STL 的一部分
Is hash_map part of the STL?
快速问题...hash_map是STL的一部分吗?
STL 有 hash_map
,但C++标准库没有。
由于一个常见的误解,您可能会认为C++标准库是"STL",或者将工具链中C++标准库实现的一部分视为"STL 实现"。
不是。
同样非常遗憾的是,MSVC++和GCC(将hash_map
实现为特定于编译器的扩展)将其放在std
命名空间中,这不仅具有高度误导性,而且根据标准也是非法的。
C++11引入了std::unordered_map
,这没有什么不同。
引用维基百科(着重号是加的):
从 STL 页面:
标准模板库 (STL) 是部分包含在 C++ 标准库中的软件库。
。然后从hash_map页面
在C++编程语言中,
hash_map
是哈希的名称 标准中的关联容器 模板库。它由 几个实现者,如GNU C++编译器和Microsoft的视觉对象 C++。它不是C++的一部分 标准库,但C++ 技术报告 1 包含非常 类似的容器unordered_map
,其中 将包含在即将推出的 C++0x 中 标准。
所以简而言之,
- 是的,它是STL的一部分。
- 但它不是标准库的一部分。
- 但它得到了几个非常流行的实现的支持。
问题是STL一词没有一致的含义。hash_map
是标准C++的一部分吗?不,不是。 但是,unordered_map
将成为新C++标准的一部分,并且是使用哈希实现的映射。
是的
,hash_map
是STL的一部分。但是,它不是 C++03 标准库的一部分。
hash_map是STL的一部分,但不是标准C++(C++11)的一部分。在标准C++中,还有一个名为"std::unordered_map"的类似hash_map实现:http://www.cplusplus.com/reference/unordered_map/unordered_map/
目前,GNU C++ 和 MSVC++ 已经实现了编译器扩展和 Boost 的hash_map。同时,SGI有自己的hash_map实施方案。您可以参考 http://www.sgi.com/tech/stl/hash_map.html 了解详细信息。
No...Hash_map不是 STL 标准的一部分。
- 在C++STL中是否有Polyval(Matlab函数)等价物?
- 为什么这个运算符<重载函数对 STL 算法不可见?
- 在C应用程序中运行C++(带有STL)函数
- 使用2个键的cpp-stl::优先级队列排序不正确
- C++:如何使函数只返回作为列表一部分的字符串
- std::sort()函数无法对向量的一部分进行排序
- 在STL容器中使用模板类
- 用C++中的CPerson(类)类型的对象初始化STL矢量
- 将stl字符串缩小到小于15个字符的容量
- 在为LINUX创建共享库时,如何避免STL的私有/弱副本
- 检查函数返回类型是否与STL容器类型值相同
- STL算法函数在多个一维容器上的使用
- 在STL - C++中按成绩对学生列表进行排序?
- 为什么 STL 容器适配器堆栈中的 top 返回常量引用?
- λ可以适应STL吗?
- 为什么使用 NDK 不能存在不同的 stl 实现?
- 为什么nullptr是核心语言的一部分,而nullptr_t是STL的一部分?
- 当键是对象的一部分时,最合适的关联STL容器
- 是 std::string 是 STL 的一部分
- hash_map是 STL 的一部分