gpt4 book ai didi

c++ - 为什么 C++ 标准库不包含哈希表实现?

转载 作者:可可西里 更新时间:2023-11-01 17:29:33 26 4
gpt4 key购买 nike

我正在阅读我的教科书Data Structures and Algorithms: By Mark Allen Weiss,它说标准库不包含集合或映射的哈希表实现,而是编译器可以提供hash_set 和 hash_map 具有相同的 set 和 map 类成员函数。为什么不在标准库中包含散列实现呢?这本书是2006年出版的,自从将这些实现添加到标准库后,C++是否有任何修订?

最佳答案

您要查找的内容称为 std::unordered_set/map。这些是 C++11 的一部分,C++ 标准的下一个版本(将在几个月内完成)。它们也在 2005 年的技术报告 1 中提供,该报告是第一个标准和下一个标准之间对 C++ 标准库的补充列表。在 TR1 中,它们位于 std::tr1 命名空间中。

Boost 实际上运送了一个 implementation of TR1 (虽然你不应该使用 std::tr1::shared_ptr 版本,作为常规 boost::shared_ptrstd::shared_ptr在 C++11 中要好得多)。

如果我还记得的话,哈希表最初没有在 C++98 中引入的原因仅仅是 C++ 标准委员会没有时间。他们基本上有一个截止日期来运送东西,而哈希表没有成功。

关于c++ - 为什么 C++ 标准库不包含哈希表实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6880894/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com