2011-11-26 88 views
0

在我問這個問題之前,我應該做更多的研究,但是我對在線搜索感到沮喪。實現散列表,插入導致「範圍」錯誤的函數

Im做學校裏的功課,它包括實現一個哈希表,所以我嘗試用鏈接這樣

內Hashtable.h

private: 

Node **buckets; //trying to create an array of pointers 

內Hashtable.cpp

初始化桶
Hashtable::Hashtable() 
{ 
buckets=new Node*[1000]; 
} 

void insert(char * value,int r, string previous) 
{ 
int find=hashfcn(value); 
Node *x =buckets[find]; 
} 

即時使用代碼塊,我得到的錯誤是插入行

error: 'buckets' was not declared in this scope|

我不知道爲什麼它不是,有人可以幫助我,謝謝!

回答

2

您忘記了Hashtable::。它應該是:

void Hashtable::insert(char * value,int r, string previous) 
{ 
int find=hashfcn(value); 
Node *x =buckets[find]; 
} 

我相信你已經知道這一點,但因爲它是現在,你只是定義一個免費的功能,它具有不知道什麼buckets是。您需要指定您在函數名稱前面定義了HashtableHashtable::的成員函數,然後您可以看到buckets指的是調用Hashtable的成員變量buckets