【MFC】容器类的使用
来源:互联网 发布:淘宝余姚司法拍卖网 编辑:程序博客网 时间:2024/06/04 01:40
如有数据结构基础,可以直接看第四部分对容器类的操作。
第一,MFC提供三种基本的容器类:arrays(数组), lists(链表), maps(映射,也称作字典).
第二,各容器类的特征分类
类型排序?索引?插入元素查找特定元素重复的元素?ListYesNoFastSlowYesArrayYesBy intSlowSlowYesMapNoBy keyFastFastNo (keys)Yes (values)
第三,模板容器类和非模板容器类
模板容器类:
Collection contentsArraysListsMaps任意对象类型的容器CArrayCListCMap任意对象指针类型的容器CTypedPtrArrayCTypedPtrListCTypedPtrMap非模板容器类:
ArraysListsMapsCObArrayCObListCMapPtrToWordCByteArrayCPtrListCMapPtrToPtrCDWordArrayCStringListCMapStringToObCPtrArray CMapStringToPtrCStringArray CMapStringToStringCWordArray CMapWordToObCUIntArray CMapWordToPtr第四,模板容器类的使用
1,简单的容器类的使用 CArray, CList, CMap
1.1 CArray的使用
基本数据类型 ,如int, char, and float
CArray<int, int> myArray;
结构体或者类
CArray<CPerson, CPerson&> myArray;
1.2 CList的使用
基本数据类型 ,如int, char, and float
CList<int, int> myList;
结构体或者类
CList<CPerson, CPerson&> myList;
1.3 CMap的使用
CMap< int, int, MY_STRUCT, MY_STRUCT& > myMap1;
CMap< CString, LPCSTR, CPerson, CPerson& > myMap2;
//map映射表
CMap<int, int, CPoint, CPoint> myMap;
//初始化哈希表,并指定其大小(数字为120%容量,最好取奇数)
myMap.InitHashTable(13);
//添加元数据
for (i=0; i<10; i++)
{
myMap.SetAt(i, CPoint(i,i*i));
}
//遍历一次
POSITION pos = myMap.GetStartPosition();
while(pos != NULL)
{
CPoint pt;
myMap.GetNextAssoc(pos, i, pt);
}
//查找特定元素
pos = myMap.GetStartPosition();
while(pos != NULL)
{
CPoint pt;
myMap.GetNextAssoc(pos, i, pt);
if (i == 3)
{
CString str;
str.Format(_T("x:%d y:%d"), pt.x, pt.y);
MessageBox(str);
}
}
//删除数据
myMap.RemoveAll();
2, 指针类型的容器类的使用 CTypedPtrArray, CTypedPtrList, CTypedPtrMap
2.1 CTypedPtrArray的使用
CTypedPtrArray<BASE_CLASS, TYPE>
//BASE_CLASS:为 CObArray or CPtrArray
CTypedPtrArray<CObArray, CPerson*> myArray;
2.2 CTypedPtrList的使用
CTypedPtrList<BASE_CLASS, TYPE>
//BASE_CLASS: 为 CObList or CPtrList
CTypedPtrList<CPtrList, MY_STRUCT*> myList;
2.3 CTypedPtrMap的使用
CTypedPtrMap<BASE_CLASS, KEY,VALUE>
//BASE_CLASS: 为CMapPtrToWord, CMapPtrToPtr, CMapStringToPtr, CMapWordToPtr, CMapStringToOb
CTypedPtrMap<CMapPtrToPtr, CString, MY_STRUCT*> myPtrMap;
CTypedPtrMap<CMapStringToOb, CString, CMyObject*> myObjectMap;
文章转自:http://www.cnblogs.com/chenang/archive/2011/11/16/2251424.html
- 【MFC】容器类的使用
- 【MFC】容器类的使用
- 【MFC】容器类的使用
- MFC容器MFC中容器类的使用
- MFC中容器类的使用
- MFC容器类介绍
- MFC容器类介绍
- MFC容器类介绍
- MFC下的容器选择
- 容器类的使用实例
- vector容器类的使用
- MFC容器类CArray,CList
- MFC容器类CArray,CList
- MFC容器类CArray,CList
- MFC容器
- dll中使用到容器的全局变量在mfc中报内存泄漏
- MFC的容器站点控件模型
- MFC的容器站点控件模型
- android 实现代码混淆
- 再谈maven自动部署到tomcat的问题
- UML遗留问题总结
- HA 模式下的 Hadoop+ZooKeeper+HBase 启动关闭管理脚本
- VirtualBox安装后影响另一个应用程序的启动
- 【MFC】容器类的使用
- PLSQL编写函数--例子
- Android进阶_XML解析pull解析,使用反射
- c++基础--指针
- Android的性能优化方法
- gwt调用iframe的方法和变量
- 解决Zxing解析本地图片二维码,识别率低,识别不出来的问题!
- i2c buss(i2c-core.c)
- C# String类常用的方法的使用