C++ 哈希集c++;澄清

C++ 哈希集c++;澄清,c++,hashset,hash-function,C++,Hashset,Hash Function,我对我一直在研究的这个话题感到迷茫。在我的类中,我们实现了自己的哈希集类。因此,我们有一个底层数据结构,如向量或数组,并使用哈希函数快速确定元素是否在集合中。这是我不明白的部分。如何使用哈希函数进行此确定?假设您有一个大小为100的底层数组,并且只能插入0到99之间的值 大概是这样的: class UselessHashMap { public: void insert(int value){ _arr[hash(i)] = i; } private: int hash(in

我对我一直在研究的这个话题感到迷茫。在我的类中,我们实现了自己的哈希集类。因此,我们有一个底层数据结构,如向量或数组,并使用哈希函数快速确定元素是否在集合中。这是我不明白的部分。如何使用哈希函数进行此确定?

假设您有一个大小为100的底层数组,并且只能插入0到99之间的值

大概是这样的:

class UselessHashMap
{
public:
  void insert(int value){
    _arr[hash(i)] = i;
  }
private:
  int hash(int i) { return i };
  std::array<int,100> _arr;
}
class UselessHashMap
{
公众:
无效插入(int值){
_arr[hash(i)]=i;
}
私人:
int散列(int i){return i};
std::数组_arr;
}
现在,假设您要存储100多个元素,并且不能有一个具有无限(std::numeric_limits::max())大小的数组。
在这种情况下,哈希函数必须返回一个介于0-99之间的值,当然,UselessHashMap类也需要处理冲突,因为该函数可以为不同的输入返回相同的值。

哈希函数告诉您将在哪个存储桶中找到元素。