Any*_*orn 2 c++ hash performance primitive-types
我想知道原始整数类型的计算哈希值(例如std :: map key)之间的速度是否存在差异,例如int64_t和pod类型struct { int16_t v[4]; };.那么int128_t与struct {int32_t v[4];}?
我知道这将是特定于实现的,所以我的问题最终与gnu标准库有关.谢谢
我发现的链接非常有用 如何在boost :: unordered_map中使用自定义类型的键?
std::map不是哈希表.它通常实现为平衡二叉树.你想要的是std::unordered_map*.
而且,对于std::unordered_map,C++只定义内部类型的哈希值和常见的哈希值,例如std::string.您需要为struct { int16_t v[4]; };自己实现哈希函数.您可以int64_t在计算中转换此结构,然后散列速度不会有任何差异.
(*:== std::tr1::unordered_map== boost::unordered_map≈ __gnu_cxx::hash_map== stdext::hash_map 等)
(**:16年8月20日类模板hash:... 整数类型(3.9.1),浮点类型(3.9.1),指针类型(8.3.1),和std::string,std::u16string,std::u32string,std::wstring,std::error_code,std::thread::id,std::bitset,和std::vector<bool>.)
| 归档时间: |
|
| 查看次数: |
604 次 |
| 最近记录: |