MFC中容器类的使用
2013-08-24 10:23
162 查看
对于MFC中所提到的基本容器类,做一个基本的介绍和编程操作。 如有数据结构基础,可以直接看第四部分对容器类的操作。 第一,MFC提供三种基本的容器类:arrays(数组), lists(链表),
maps(映射,也称作字典). 第二,各容器类的特征分类
第三,模板容器类和非模板容器类 模板容器类:
非模板容器类:
第四,模板容器类的使用 1,简单的容器类的使用 CArray, CList, CMap 1.1 CArray的使用 基本数据类型 ,如int, char, and float
myList; 1.3 CMap的使用
指针类型的容器类的使用 CTypedPtrArray, CTypedPtrList, CTypedPtrMap 2.1 CTypedPtrArray的使用
maps(映射,也称作字典). 第二,各容器类的特征分类
类型 | 排序? | 索引? | 插入元素 | 查找特定元素 | 重复的元素? |
List | Yes | No | Fast | Slow | Yes |
Array | Yes | By int | Slow | Slow | Yes |
Map | No | By key | Fast | Fast | No (keys)Yes (values) |
Collection contents | Arrays | Lists | Maps |
任意对象类型的容器 | CArray | CList | CMap |
任意对象指针类型的容器 | CTypedPtrArray | CTypedPtrList | CTypedPtrMap |
Arrays | Lists | Maps |
CObArray | CObList | CMapPtrToWord |
CByteArray | CPtrList | CMapPtrToPtr |
CDWordArray | CStringList | CMapStringToOb |
CPtrArray | CMapStringToPtr | |
CStringArray | CMapStringToString | |
CWordArray | CMapWordToOb | |
CUIntArray | CMapWordToPtr |
CArray myArray; 结构体或者类
CArray myArray;1.2 CList的使用 基本数据类型 ,如int, char, and float CList
myList; 结构体或者类CList
myList; 1.3 CMap的使用
CMap< int, int, MY_STRUCT, MY_STRUCT& > myMap1;
CMap< CString, LPCSTR, CPerson, CPerson& > myMap2;
//map映射表2,
CMap<<FONT face="Courier New">int, int, CPoint, CPoint> myMap;//初始化哈希表,并指定其大小(数字为120%容量,最好取奇数)
myMap.InitHashTable(13);//添加元数据
for (i=0; i<<SPAN style="COLOR: #800080">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();
指针类型的容器类的使用 CTypedPtrArray, CTypedPtrList, CTypedPtrMap 2.1 CTypedPtrArray的使用
CTypedPtrArray
//BASE_CLASS:为 CObArray or CPtrArray
CTypedPtrArray myArray;2.2 CTypedPtrList的使用 CTypedPtrList //BASE_CLASS: 为 CObList or CPtrList
CTypedPtrList myList;2.3 CTypedPtrMap的使用 CTypedPtrMap //BASE_CLASS: 为CMapPtrToWord, CMapPtrToPtr, CMapStringToPtr, CMapWordToPtr, CMapStringToOb
[code] CTypedPtrMap myPtrMap;[/code]
[code] CTypedPtrMap myObjectMap;[/code]
相关文章推荐
- 关于MFC使用deque、vector等容器编译不通过的解决方法
- 【MFC】容器类的使用
- MFC容器MFC中容器类的使用
- 用VS2012做MFC ActiveX控件并使用html、c#、c++测试容器
- 【MFC】容器类的使用
- 用VS2012做MFC ActiveX控件并使用html、c#、c++测试容器
- 【MFC】容器类的使用
- 【MFC】容器类的使用
- 在MFC中使用纯COM方式来操纵Flash OCX (IShockwaveFlash)
- C++容器使用总结
- 如何使用MFC和类型库创建自动化项目
- MFC使用动态库dll
- java 容器类使用 Collection,Map,HashMap,hashTable,TreeMap,List,Vector,ArrayList的区别
- ACE 容器之一 ACE_Array 的使用
- CSocket写的服务器的使用静态MFC的错误的解决方案
- MFC中一些控件的使用和Opencv的一些变量转换
- 当很频繁地对序列中部进行插入和删除操作时,应该选择使用的容器是()
- MFC列表控件的使用
- 使用类路径容器简化 Eclipse 类路径
- STL各种容器使用总结