1
寫,沒有實現對學生的滾動哈希函數的程序,並在他們的家庭進行分類。就像5000423,最後2位數字23,2 + 3 = 5,所以屬於家族5
我嘗試:捕獲
#include<iostream>
#include<cstdlib>
#include<string>
using namespace std;
const int tablesize= 20;
class hashentry
{
public:
int key;
int value;
hashentry(int key,int value)
{
this->key=key;
this->value=value;
}
};
class hashmap
{
public:
hashentry **table;
public:
hashmap()
{
int table=new hashentry *[tablesize];
for(int i=0;i<tablesize;i++)
{
table[i]=NULL;
}
}
int hashfunc(int key)
{
return key%tablesize;
}
void insert(int key, int value)
{
int hash=hashfunc(key);
while(table[hash]!=NULL && table[hash]->key!=key)
{
hash=hashfunc(hash+1);
}
table[hash]=new hashentry(key,value);
}
};
int main()
{
int key;
int value;
hashmap hash;
cout<<"enter value";
cin>>value;
cout<<"enter key at which element is to be inserted";
cin>>key;
hash.insert(key,value);
return 0;
}
錯誤:
In constructor 'hashmap::hashmap()':
invalid conversion from 'hashentry**' to 'int'
invalid types 'int[int]' for array subscript
猜測指針可能是你的程序中的一個'long' – Jay
'table'應該是構造函數中的'this.table' –
投票以打字方式結束。從構造函數中的int table = new hashentry * [tablesize];中移除int。 – NathanOliver