我正在阅读我的教科书Data Structures and Algorithms: By Mark Allen Weiss
,它说标准库不包含集合或映射的哈希表实现,而是编译器可以为集合和映射类的相同成员函数提供hash_set和hash_map。为什么不把hash实现包含在标准库中呢?这本书是在2006年发布的,自从将这些实现添加到标准库之后,是否对C++进行了修改?为什么C++标准库不包含哈希表实现?
回答
你在找什么叫std::unordered_set/map
。这些是C++11的一部分,C++标准的下一个版本(将在几个月内完成)。它们也在2005年的技术报告1中提供,它是第一个标准与下一个标准库之间C++标准库的补充列表。在TR1中,它们位于std::tr1
名称空间中。
升压实际船舶的implementation of TR1(虽然你不应该使用std::tr1::shared_ptr
版本,在常规boost::shared_ptr
和std::shared_ptr
C++ 11的好得多)。
如果我回想起来,哈希表最初并没有在C++ 98中引入的原因简直就是C++标准委员会缺乏时间。他们基本上有一个截止日期为了运送的东西,哈希表没有做到这一点。
这些也是自2005年以来作为TR1库扩展提供的。 – Blastfurnace
那真是一种不幸。但是,谢谢!来自维基百科:“在C++标准库中包含散列表(无序关联容器)是最经常发生的请求之一。” – tehman
@Blastfurnace:注意。谢谢。 –
- 1. 为什么GNU C Library称为C标准库的实现?
- 2. 为什么盐被包含在用C crypt函数哈希
- 3. 哈希表实现
- 4. 包含C++标准库
- 5. 执行包含哈希表
- 6. 为什么包含标准头文件?
- 7. C++中的哈希表实现
- 8. 使用矢量C++实现哈希表
- 9. 在C中的哈希表实现?
- 10. 为什么Java标准库不实现toString方法?
- 11. 持久哈希表实现
- 12. 实现哈希表的
- 13. Java哈希表实现
- 14. 实现在哈希表
- 15. Java哈希表实现
- 16. 为什么使用数组来实现“列表”而不是哈希表?
- 17. SystemJS实现什么标准?
- 18. 在包中包含一个“哈希表”
- 19. 什么命名结构包含哈希表和向量?
- 20. 为什么我的哈希集包含重复项?
- 21. 为什么Rail2的to_json包含返回空哈希的选项?
- 22. 为什么下载的文件名包含哈希
- 23. 哈希码实现
- 24. 每个C++实现中都包含C++标准库函数和类吗?
- 25. 为什么度量标准实现需要性能度量标准库?
- 26. file_get_contents包含哈希信息
- 27. 匹配哈希包含
- 28. 什么是标准ada包含路径
- 29. 为什么我的哈希不是undef?
- 30. 哈希不包含'尝试'方法
我知道马克个人很棒:D,很可能他们没有被包含在图书馆里,因为他们只会被内部使用。编译器也更容易优化它们。 –
你是什么意思只能在内部使用?这真的很棒,你从哪里知道他的? – tehman
他是我参加学校的首席人员之一。而内部使用,我的意思是它们可能是针对特定于代码的库进行优化的尼古拉斯可能有一个观点。 –