[英]What is the default hash function used in C++ std::unordered_map?
[英]what hash function is being used by boost c++ unordered_map?
boost c ++ unordered_map正在使用什么哈希函数? 我的意思是boost :: hash正在使用什么样的哈希算法
template <> struct hash;
谢谢
默认情况下,它使用boost :: hash :)
这取决于你使用的类型,如果你看这里 boost::hash
模板类是专门的:
template<> struct hash<bool>;
template<> struct hash<char>;
template<> struct hash<signed char>;
template<> struct hash<unsigned char>;
template<> struct hash<wchar_t>;
template<> struct hash<short>;
template<> struct hash<unsigned short>;
template<> struct hash<int>;
template<> struct hash<unsigned int>;
template<> struct hash<long>;
template<> struct hash<unsigned long>;
template<> struct hash<long long>;
template<> struct hash<unsigned long long>;
template<> struct hash<float>;
template<> struct hash<double>;
template<> struct hash<long double>;
template<> struct hash<std::string>;
template<> struct hash<std::wstring>;
template<typename T> struct hash<T*>;
您还可以将自己的哈希指定为第三个模板参数:
namespace boost {
template<typename Key, typename Mapped, typename Hash = boost::hash<Key>,
typename Pred = std::equal_to<Key>,
typename Alloc = std::allocator<std::pair<Key const, Mapped> > >
class unordered_map;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.