STL容器 雜湊表

2021-09-13 12:35:55 字數 1269 閱讀 7891

// 計算雜湊值的類

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...