STL哈希函数

时间:2011-04-13 17:22:38

标签: c++ algorithm boost stl cryptography

STL是否有任何可用的Hash函数,这些函数是公开的?

我知道有一些使用哈希值的非标准实现(例如boost :: hash_map),而MSVC8实现了hash_map / hash_set / etc的版本。

但是有没有在C ++ 98 STL中定义的哈希函数

如果没有,那么可靠散列函数的最佳非C ++ 98源代码是什么?

首选来源的顺序(从大多数可接受到最少):Boost,C ++ 0x标准STL,TR1,其他第三方。

3 个答案:

答案 0 :(得分:16)

总结:

所有这些都是针对散列关联容器设计的,而不是用于加密。

答案 1 :(得分:3)

我猜你正在寻找哈希表的哈希函数,而不是密码学,对吗?

在这种情况下,boost::hash怎么办?

文档说它与TR1哈希兼容,后者应该成为即将推出的C ++ 0x标准的一部分。这意味着它可能已经在很多编译器中找到了。

对于加密哈希,Boost中似乎有一个SHA-1实现,但是如果你需要它们的重量级,那就是使用专用库,例如​​Crypto++

答案 2 :(得分:0)

Hash函数的选择理想地取决于您对结果的使用。我怀疑这可能部分归因于“一种尺寸不适合所有人”的想法。