如何解决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 ++。
,哈希函数的选择理想地取决于您对结果的使用。我怀疑这可能部分是由于“一种尺寸不能适应所有尺寸”的想法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。