std :: hash和/或boost :: hash的目的是什么?

时间:2012-12-24 06:06:02

标签: c++ c++11 hash stdhash

为什么在没有指定任何引用实现的情况下提供哈希函数,也没有指定引用算法(md5,sha256等等)?

此外,数据结构也有类似的功能,例如符合C ++标准的std::unordered_map/set/multimap/multiset::hash_function

所以我没有得到的是:

  • 为何提供此类未记录的方法
  • 实现细节是正确使用散列函数的基础,从程序员的角度来看这些函数的目的是什么
  • 此功能可以链接到特定算法吗?

1 个答案:

答案 0 :(得分:3)

  

为何提供此类未记录的方法

他们没有证件。

  

实现细节是正确使用散列函数的基础,从程序员的角度来看这些函数的目的是什么

实现未指定,它们应该与无序容器一起使用。它们应该尽可能好的哈希函数,以有效地将元素分配到桶中。其他任何事情都没有说明。

请注意,如果使用带有用户定义类型的无序容器,则应提供这些用户。

  

此功能可以链接到特定算法吗?

为什么不呢?