博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Windows04.CMap
阅读量:6705 次
发布时间:2019-06-25

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

hot3.png

CMap,映射表类,也叫字典,一对一。适合用于频繁替换和查找的数据,由Key和Value组成,一般将Key作为唯一变量,通过Key即可找到Value。

CMap利用的是散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。这个映射函数叫做散列函数,存放记录的数组叫做散列表。适用于需要根据关键字进行快速检索的场合。在查找时不用像数组那样遍历index之前的元素,通过哈希表关键字可以快速查找其对应键值。

//头文件#include 
//定义,继承于CObject//template< class KEY, class ARG_KEY, class VALUE, class ARG_VALUE >class CMap : public CObject//KEY:Class of the object used as the key to the map.//ARG_KEY:Data type used for KEY arguments; usually a reference to KEY.//VALUE:Class of the object stored in the map.//ARG_VALUE:Data type used for VALUE arguments; usually a reference to VALUE. CMap
MyMap1; CMap
MyMap2; //LPCTSTR也就是TCHAR*,也即是char*或者wchar*。 //添加也是设定值 MyMap1.SetAt(1,98.0); MyMap2.SetAt(_T("张三"),1); MyMap1[1] = 99.0; //查找 double dTest = 0; if (MyMap1.Lookup(1,dTest)) { AfxMessageBox(_T("找到了")); //此时dTest的值已经是99.0了 } //获取个数 int nLength = MyMap2.GetCount(); //遍历 CString strKey = _T(""); int nValue = 0; POSITION pos = MyMap2.GetStartPosition(); while(pos) { MyMap2.GetNextAssoc(pos,strKey,nValue); } //删除 MyMap1.RemoveKey(1); //清空 if(!MyMap1.IsEmpty())//判定是否为空 MyMap1.RemoveAll(); //不会执行,前面已经删掉了 if (!MyMap2.IsEmpty()) MyMap2.RemoveAll();

转载于:https://my.oschina.net/HappyTeemo/blog/1558484

你可能感兴趣的文章
mt6735 [CTS Fail]BuildFingerprint
查看>>
android 手机连电脑usb调试 adb devices 显示 unauthorized ,eclipse DDMS offline
查看>>
我的友情链接
查看>>
Quartz Job Scheduling Framework 中文版 V0.9.1.chm
查看>>
IIS6 配置伪静态
查看>>
Exchange系列—配置边缘传输服务器和集线器传输服务器的反垃圾邮件代理
查看>>
Java程序内存分析:使用mat工具分析内存占用
查看>>
redis(二)redis+TCMALLOC高性能的缓存服务器的安装配置
查看>>
Sublime Text 3为新的扩展文件类型实现语法高亮
查看>>
MySQL8.0.11安装脚本及其备份脚本,日志轮转
查看>>
NO.123 需求的基本统计报表
查看>>
Ubuntu 安装mysql
查看>>
最小化安装CentOS 6.X之后要做哪些配置
查看>>
MAC OS 下如何跟Linux系统互相拷贝文件
查看>>
为什么使用Context的startActivity方法(比如在Service中或者Broad...
查看>>
sql替换数据库字段中的字符
查看>>
Linux安装rpc监控系统资源
查看>>
[ThinkPHP]延迟更新方法的陷阱
查看>>
JSON和XML:不可同日而语
查看>>
ipcs命令
查看>>