作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我需要数很多不同的项目。我正在处理一个配对列表,例如:
A34223,34
B23423,-23
23423212,16
我打算做的是将第一个值(键)散列成一个 32 位整数,然后它将成为一个稀疏结构的键,其中“值”将被添加(全部从零开始)数字并且是负数.
鉴于它们的 key 很短并且是字母数字,有没有一种方法可以生成在 32 位 x86 架构上快速的哈希算法?或者是否存在合适的散列?
我对散列的设计一无所知,但希望由于简单的输入,会有一种生成高性能散列的方法,保证给定 key 长度“X”不会发生冲突,并且具有高分散性,因此当长度超过“X”时可最大限度地减少碰撞。
最佳答案
当您使用 C++ 时,您应该做的第一件事是使用 std::map 创建一个简单的实现。它足够快吗(可能会)?如果是这样,请坚持下去,否则请调查您的 C++ 实现是否提供哈希表。如果是这样,请使用它来创建一个简单的实现、测试、计时。它足够快吗(几乎可以肯定是的)?
只有在用尽这些选项后,您才应该考虑实现自己的哈希表和哈希函数。
关于c++ - 专门的哈希表c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/955862/
我有一个带有模板函数的基类,该函数具有通用模板类型和专用版本。 #ifndef BASE_CLASS #define BASE_CLASS #include using namespace std;
我有这个 3D vector 模板 template class Vec3TYPE{ public: union{ struct{ TYPE x,y,z; }; struct{ TY
我是一名优秀的程序员,十分优秀!