// 計算雜湊值的類
templateclass chash
}; // string user people
// 線性探測法實現的雜湊表結構
template>
class chashtable
void put(const t &val)
int index = _hash(val) % _hashvec.size();
for (int i = index;;i = (i + 1) % _hashvec.size())
}}// 刪除雜湊表中的元素
void remove(const t &val)
if (i == flag)
}}// 在雜湊表中查詢元素
bool query(const t &val)
if (i == flag)
}}private:
// state_unuse 刪除 state_used 0
enum state;
struct node
t _data;
state _state;
}; //vector_hashvec;
vector> _hashvec;
double _loadfactor; // 記錄載入因子
int _usedbuckets;
hashtype _hash; // 專門計算t型別物件的雜湊值的
//static int _prime = ; 列舉素數
//獲取素數
int getprime(int n)
if (j > k)
else
}}// 動態擴容
void resize()
continue;
}*/} }
//_hashvec.erase(_hashvec.begin(), _hashvec.end());
//_hashvec = _newhash;
}};int main()
hash.put(2);
hash.display();
hash.remove(2);
hash.display();
hash.put(2);
hash.display();
cout << hash.query(3) << endl;
cout << hash.query(2) << endl;
return 0;
}
STL(十六)hash map雜湊映照容器
hash map雜湊映照容器與map映照容器比較相似,都將記錄型的元素劃分為鍵值和映照資料兩個部分,然後根據鍵值的大小,將鍵值不重複的元素插入容器。不同之處在於,hash map使用雜湊表的資料結構,map使用紅黑樹的資料結構。對於元素的檢索來說,這兩種資料結構都有快速的檢索效率。hash map檢...
找硬幣 STL 雜湊表應用
題目鏈結第一行包含兩個整數 n 和 m,分別表示硬幣數量以及需要支付的金額。第二行包含 n 個整數,表示每個硬幣的面額。輸出一行,包含兩個整數 v1,v2,表示所選的兩個硬幣的面額,使得 v1 v2 並且 v1 v2 m。如果答案不唯一,則輸出 v1 最小的解。如果無解,則輸出 no solutio...
STL順序容器之鍊錶
list雙向鍊錶 forward list向前鍊錶 單向 操作都在煉表頭 2011年新標準 略 include list 結構體 變數名 for each ls2.begin ls2.end fun list iterator ite ls2.begin ite 只能 不能 2 3 無容量概念 si...