STL哈希函数

| STL是否具有任何公开公开的哈希函数? 我知道有一些使用哈希值的非标准实现(例如boost :: hash_map),而MSVC8实现了hash_map / hash_set / etc的版本。 但是,C ++ 98 STL中是否定义了任何哈希函数? 如果不是,那么可靠散列函数的最佳非C ++ 98来源是什么? 首选来源的顺序(从最高到最低):Boost,C ++ 0x标准STL,TR1,其他第三方。     
已邀请:
总结一下: STL具有哈希功能 C ++ 98标准库不 C ++ TR1具有哈希函数(
6.3.3[tr.unord.hash]
) boost具有哈希功能 C ++ 11标准库具有哈希函数(
20.8.12[unord.hash]
) 而且所有这些都是为哈希关联容器而不是密码术设计的。     
我猜您正在寻找哈希表的哈希函数,而不是密码算法,对吗? 在那种情况下,boost :: hash呢? 该文档说它与TR1哈希兼容,后者应该成为即将到来的C ++ 0x标准的一部分。这意味着它可能已经在许多编译器中找到。 对于密码散列,Boost中似乎有SHA-1实现,但是如果需要重量级散列,最好的方法是使用专用库,例如​​Crypto ++。     
哈希函数的选择理想地取决于您对结果的使用。我怀疑这可能部分是由于“一种尺寸不能适应所有尺寸”的想法。     

要回复问题请先登录注册