|
NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
|
哈希函数库 更多...
#include "NeForce/core/typeinfo/type_traits.hpp"类 | |
| struct | hash< T * > |
| 指针类型的哈希特化 更多... | |
| struct | hash< T, enable_if_t< is_enum_v< T > > > |
| 枚举类型的哈希特化 更多... | |
| struct | murmur_hash |
| MurmurHash_x64的128位哈希结果容器 更多... | |
| struct | is_nothrow_hashable< Key, Dummy > |
| 判断类型是否可无异常哈希 更多... | |
| struct | is_hash< Func, Arg, Dummy > |
| 判断类型是否为有效的哈希函数 更多... | |
函数 | |
| NEFORCE_CONSTEXPR14 size_t | FNV_hash (const byte_t *first, const size_t count) noexcept |
| FNV-1a哈希算法 | |
| template<typename T> | |
| NEFORCE_CONSTEXPR14 size_t | FNV_hash_integer (const T value) noexcept |
| 整数类型的FNV哈希 | |
| template<typename CharT> | |
| NEFORCE_CONSTEXPR14 size_t | FNV_hash_string (const CharT *str, const size_t len) noexcept |
| 字符串类型的FNV哈希 | |
| NEFORCE_CONSTEXPR14 size_t | DJB2_hash (const char *str, const size_t len) noexcept |
| DJB2哈希算法 | |
| murmur_hash NEFORCE_API | MurmurHash_x64 (const void *key, size_t len, uint32_t seed) noexcept |
| MurmurHash3_x64_128算法 | |
| uint32_t NEFORCE_API | MurmurHash_x32 (const void *key, size_t len, uint32_t seed) noexcept |
| MurmurHash3_x86_32算法 | |
变量 | |
| NEFORCE_INLINE17 constexpr size_t | FNV_OFFSET_BASIS |
| FNV哈希算法的偏移基础值 | |
| NEFORCE_INLINE17 constexpr size_t | FNV_PRIME = 16777619U |
| FNV哈希算法的质数乘数 | |
| template<typename Key> | |
| NEFORCE_INLINE17 constexpr bool | is_nothrow_hashable_v = is_nothrow_hashable<Key>::value |
| is_nothrow_hashable的便捷变量模板 | |
| template<typename Func, typename Arg> | |
| constexpr bool | is_hash_v = is_hash<Func, Arg>::value |
| is_hash的便捷变量模板 | |
哈希函数库
此文件提供了各种哈希算法的实现,包括FNV-1a、DJB2和MurmurHash等, 以及基本数据类型的哈希函数特化。支持编译时哈希计算和运行时高效哈希。
对基本类型的哈希特化将不展示在文档内,有需要可自行查看本文件内容。
在文件 hash.hpp 中定义.