C++手写hashmap
时间: 2023-08-29 16:09:32 浏览: 54
以下是一个手写的HashMap的C++代码示例:
```cpp
#include <iostream>
#include <vector>
using namespace std;
class HashMap {
private:
vector<pair<int, int>> buckets;
int size;
public:
HashMap() {
size = 10000;
buckets.resize(size);
}
void insert(int key, int value) {
int index = key % size;
buckets[index = make_pair(key, value);
}
int find(int key) {
int index = key % size;
if (buckets[index].first == key) {
return buckets[index].second;
}
return 0;
}
};
int main() {
HashMap map;
map.insert(1, 1);
map.insert(2, 2);
map.insert(3, 3);
map.insert(4, 4);
cout << map.find(1) << endl;
cout << map.find(2) << endl;
cout << map.find(3) << endl;
cout << map.find(4) << endl;
return 0;
}
```
这个HashMap类使用除留余数法来处理冲突。它具有插入和查找功能。在插入时,将关键字和值存储在散列表的对应位置。在查找时,根据关键字找到对应的位置,并返回对应的值。如果没有找到对应的关键字,则返回0。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [手写HashMap](https://blog.csdn.net/weixin_45750972/article/details/121058487)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [C++ 手写简单哈希散列表](https://blog.csdn.net/weixin_44178960/article/details/125766207)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]