博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++实现哈希映射(与map二叉树映射,线性映射比较)
阅读量:6827 次
发布时间:2019-06-26

本文共 1805 字,大约阅读时间需要 6 分钟。

practice1.h(包含线性映射)

#ifndef PRACTICE1_H_INCLUDED#define PRACTICE1_H_INCLUDED#include
template
class LinerMap //线性映射{ public: LinerMap(int size=101):arr(size) { currentSize=0; } void Put(const Key&k,const Value & v) { arr[currentSize]=DataEntry(k,v); currentSize+=1; } Value Get(const Key & k) { //线性查找 for(size_t i=0;i
arr; int currentSize;};#endif // PRACTICE1_H_INCLUDED

hashmap.h文件

#ifndef HASHMAP_H_INCLUDED#define HASHMAP_H_INCLUDED#include
template
class HashMap //哈希映射{ public: HashMap(int size=101):arr(size) { currentSize=0; } void Put(const Key&k,const Value & v) { int pos=myhash(k); arr[pos]=DataEntry(k,v); ++currentSize; } Value Get(const Key & k) { int pos=myhash(k); if(arr[pos].key==k) return arr[pos].value; else return Value(); } unsigned hash(const Key & k) const { unsigned int hashVal=0; const char *keyp=reinterpret_cast
(&k);//转换成字符 for (size_t i=0;i
arr; int currentSize;};#endif // PRACTICE1_H_INCLUDED

practice.cpp文件

#include
#include
//映射,二叉树映射(字典),不是哈希映射#include "practice1.h"#include
#include
//不是c++的国际标准里#include "hashmap.h"using namespace std;int main(){ //二叉搜索树 map
m;//字典 m["bill"]=98; //保存了许多 //cout<
<
lm;//// lm.Put("bill",80);//// lm.Put("jack",100);//// cout<
<
myHMap;// cout<
<
hm; hm["libin"]=15; cout<
<

 

转载于:https://www.cnblogs.com/libin123/p/10420200.html

你可能感兴趣的文章
递归问题(邓公数据结构1.4节笔记)
查看>>
“山竹”影响出来的多应用单点登录
查看>>
获取不到scrollTop的问题
查看>>
Pycharm 项目运行错误问题整理
查看>>
Logtail从入门到精通(六):工作原理简介
查看>>
阿里云王牌架构师二问开发者:容器和虚拟化你会怎么选?
查看>>
reids复制的原理和优化
查看>>
iterm 配置
查看>>
【刷算法】求机器人的运动范围
查看>>
cookie跨域共享 cookie二级域名共享 前后端分离项目共享cookie
查看>>
Dart4Flutter-01– 变量, 类型和 函数
查看>>
k8s与监控--prometheus的远端存储
查看>>
Extjs的一些基础使用!
查看>>
【VUE入门】父组件给子组件传值
查看>>
小程序折叠与展开文章的的实现
查看>>
人生苦短,我用 ES6 模板
查看>>
tornado学习笔记(1)HTTP请求及API测试
查看>>
实时计算 Flink SQL 核心功能解密
查看>>
升级webpack4踩的坑
查看>>
【跃迁之路】【429天】刻意练习系列188—SQL(2018.04.10)
查看>>