微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

STL哈希函数

如何解决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 举报,一经查实,本站将立刻删除。