我想實現一個哈希設置,但我有散列函數一些麻煩設置功能。我想在集中添加,有姓名和電話號碼的人:哈希散列
class Person{
string name;
long long int phoneNumber;
}
和我的索引集由phoneNumber的的數字相加計算。問題是,我不希望我的功能是這樣的:
int add(long long int nr, Element e) - the function that adds an Element to the set
{
int hashCode = hash(nr);;
...
}
其中long long int nr
應該是phoneNumber的和Element e
應該成爲的人。我的意思是,這很愚蠢。如果我已經有人作爲參數,爲什麼它的phoneNumber呢?正如你可以看到我使用的模板,我的老師建議我做一個虛擬類的散列函數,迫使它是各類型(如Java中的HashSet的東西)。事情是我沒有想法如何做到這一點。你有任何想法可以幫助我嗎?
電話號碼不是整數,這是一串數字。 –
@sftrabbit無論如何!那不是重點。 –
將電話號碼用作索引有點奇怪。電話號碼通常不會識別一個人。有可能以多種方式編寫電話號碼,因此在將電話號碼用作索引之前,需要對電話號碼進行*規範化。最後,如果你想有一個基於電話號碼的查詢,你是關閉使用(散)**地圖**更好,而不是** **設置。 –