CMap

CObject
 └CMap

template <class KEY,class ARG_KEY,class VALUE, class ARG_VALUE> class CMap:public CObject

参数:
KEY对象的类,用作映射的关键码。
ARG_KEY参数KEY使用的数据类型,通常为KEY的参考。
VALUE存储在映射中对象的类。
ARG_VALUE参数VALUE使用的数据类型,通常为VALUE的参考。

说明:
CMap是把唯一关键码映射到值的字典收集类。一旦在映射中插入了一个关键码值对(元素),就可以使用这些关键码,有效地获取或删除对。同样,也可以反复使用映射中的所有元素。
POSITION类型变量用于替换所有映射变量的入口。可以使用POSITION来“记忆”入口和映射中的遍历。可能认为这种遍历是通过关键码值来依次进行的,但其实不是。获取元素的次序没有确定。
该类的某些成员函数调用了全局的帮助函数,它们必须定制,以满足CMap类的更多用途。请参阅“Microsoft Visual C++ MFC库参考”中的“宏和全局”部分中的“收集类帮助程序”。
CMap引入了宏IMPLEMENT_SERIAL,支持其元素的串行化和转储。如果映射存储到档案文件中,那么每一元素都可利用加载插入(<<)操作符或Serialize成员函数来依次进行串行化。如果要了解有关在映射中进行个别元素的诊断转储,那么转储内容的深度必须为1或更大。当CMap对象删除或其元素被删除,那么关键码和值都将被删除。映射类的派生与列表的派生相似。请参阅联机文档“Visual C++程序员指南”中的“收集”部分,以进一步了解特殊用途的列表类的派生。
#include <afxtempl.h>


CMap类的成员

构造函数
CMap构造一个映射关键码为值的收集

操作符
Lookup查找与指定关键码对应的值
SetAt在映射中插入一个元素,但假如发现了相匹配的关键码,则替换已经存在的元素
operator []在映射中插入一个元素,它是代替SetAt的操作符
RemoveKey删除关键码指定的元素
RemoveAll删除映射中所有的元素
GetStartPosition返回第一个元素的位置
GetNextAssoc获取循环中下一个元素
GetHashTableSize返回散列表的大小(元素的个数)
InitHashTable初始化散列表,并指定其大小

状态
GetCount返回映射中元素的个数
IsEmpty测试是否为空映射(即没有元素)