ImageVerifierCode 换一换
格式:PPT , 页数:32 ,大小:72KB ,
文档编号:4300511      下载积分:25 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-4300511.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(晟晟文业)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(11第十一章MFC程序设计集合类课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

11第十一章MFC程序设计集合类课件.ppt

1、MFC程序设计程序设计集合类作作 者:李者:李 季季主要内容主要内容l数组l列表l映射l类型指针类l基于模板的集合类数组数组lC和C+的数组缺陷无边界检查lInt array10;for(int i=0;i=0&nIndex=0&nIndex m_nSize);m_pDatanIndex=nVal;数组数组lCArray array(10);for(int I=0;I=10;i+)array.Set(i,i+1);MFC数组类数组类特定类型特定类型类 名数据类型CByteArray8位字节(BYTE)CWordArray16位字节(WORD)CDWordArray32位双字节(DWORD)CU

2、IntArray无符号整型(UINT)CStringArrayCStringCPtrArrayvoid指针CObArrayCObject指针MFC数组类函数数组类函数声明、初始化声明、初始化lCUIntArray array;array.SetSize(10);for(int I=0;i10;i+)arrayi=i+1;lCSrtingArray array;array.SetSize(10);for(int I=0;I 10;i+)CString string;string.Format(_T(“%d”),i);array=srting;MFC数组类函数数组类函数添加添加lCUIntArra

3、y array;array.SetSize(9);for(int I=0;I 4;i+)arrayi=I+1;for(I=4;I 9;i+)arrayi=I+2;array.InsertAt(4,5);MFC数组类函数数组类函数删除删除lCUIntArray array;array.SetSize(10);for(int i=0;i 10;i+)arrayi=i+1;array.RemoveAt(0);TRACE(_T(“Count=%dn”),array.GetSize();array.RemoveAt(0,3);TRACE(_T(“Count=%dn”),array.GetSize();a

4、rray.RemoveAll();TRACE(_T(“Count=%dn”),array.GetSize();MFC数组类函数数组类函数删除删除l如果数组元素是CPtrArray或CObArray类型,要先删除被删除指针所指对象然后清空数组。l错误的写法array.RemoveAll();l正确的写法int nSize=array.GetSize();for(int i=0;i nSize;i+)delete arrayi;array.RemoveAll();MFC数组类数组类动态调整数组大小动态调整数组大小lCUIntArray array;array.SetSize(10);for(int

5、 i=0;i 10;i+)arrayi=i+1;array.SetSize(20);for(i=10;i 20;i+)arrayi=i +1;注:原来的项仍保持原值。MFC数组类数组类动态调整数组大小动态调整数组大小lCUIntArray array;for(int i=0;i10;i+)array.SetAt(I,i+1);lCUIntArray array;for(int i=0;i10;i+)array.SetAtGrow(I,i+1);tlCUIntArray array;for(int i=0;i10;i+)array.Add(i+1);l自他可以自动增大数组的函数有:InsertA

6、t、Append、CopyMFC数组类数组类CArray类类l模板类,可为任意数据类型创建类型安全数组类。lCArray array;for(int i=0;i10;i+)array.SetAtGrow(i,CPoint(i*10,0);int nCount=array.GetSize();for(i=0;inCount;i+)CPoint point=arrayi;TRACE(_T(“x=%d,y=%dn”),point.x,point.y);MFC数组类数组类基于模板基于模板lCArraylTYPE用来指定元素的数据类型,可以是C+基础类型(如int、char、long、float等)、结

7、构或类lARG_TYPE用来指定成员函数的参数类型ltypedef CArray CUIntArray;l与CUIntArray等价列表列表l包含指向其他列表项指针的列表项集合。l列表分类单链表双向链表循环链表MFC列表类列表类特定类型特定类型类 名数据类型CObListCObject指针CPtrListvoid指针CStringListCStringMFC列表类列表类lMFC列表是双向链表。lPOSITION标识列表中的位置,实际上是指向CNode数据结构的指针。lCNode包含三个字段:指向下一个CNode结构的指针、一个指向上一个CNode结构的指针、一个指向列表项数据的指针,MFC列表

8、类函数列表类函数声明、添加声明、添加lCStringList list;for(int i=0;i=0;i-)list.AddHead(szScorei);MFC列表类函数列表类函数遍历遍历lPOSITION pos=list.GetHeadPosition();while(pos!=NULL)CString string=list.GetNest(pos);TRACE(_T(“%sn”),string);lPOSITION pos=list.GetPrev(pos);while(pos!=NULL)CString string=list.GetPrev(pos);TRACE(_T(“%sn”

9、),string);MFC列表类列表类CList类类l模板类,可为任意数据类型创建类型安全列表类。lCList list;for(int i=0;i10;i+)list.AddTail(CPoint(i*10,0);POSITION pos=list.GetHeadPosition();while(pos!=NULL)CPoint point=list.GetNext(pos);TRACE(_T(“x=%d,y=%dn”),point.x,point.y);MFC列表类列表类CList类类l如果在CList中使用了类并且调用Find函数,应满足下列条件之一:类具有重载了的=运算符,执行与相似对

10、象的比较。用特殊类型的版本覆盖了模板函数CompareElements,执行对两个类实例的比较。映射映射l又称词典,一种表格,其中一种项目是另一种项目的关键字。l元素承对存在,一为键值对象(key object),一为实值对象(value object)。MFC映射类映射类特定类型特定类型类 名说 明CMapWordToPtr保存void指针,关键字为WORDCMapWordToOb保存CObject指针,关键字为WORDCMapPtrToWord保存WORD,关键字为void指针CMapPtrToPtr保存void指针,关键字为其他void指针CMapStringToOb保存CObject指

11、针,关键字为字符串CMapStringToPtr保存void指针,关键字为字符串CMapStringToString 保存字符串,关键字为其他字符串MFC映射类函数映射类函数lCMapStringToString map;map_T(“Sunday”)=_T(“Dimanche”);map_T(“Monday”)=_T(“Lundi”);map_T(“Tuesday”)=_T(“Mardi”);map_T(“Wednesday”)=_T(“Mercredi”);map_T(“Thursday”)=_T(“Jeudi”);map_T(“Friday”)=_T(“Vendredi”);map_T(

12、“Saturday”)=_T(“Samedi”);lCString string;if(map.Lookup(_T(“Thursday”),string)TRACE(_T(“Thursday in English=%s in Frenchn”),string);MFC映射类函数映射类函数lPOSITION pos=map.GetStartPosition();while(pos!=NULL)CString strKey;CString strItem;map.GetNextAssoc(pos,strKey,strItem);TRACE(_T(“Key=%s,Item=%sn”),strKey,

13、strItem);lFdsMFC映射类映射类CMap类类l模板类,可为任意数据类型创建类型安全映射类。lCMap map;map0=CPoint(0,0);map1=CPoint(100,0);map2=CPoint(100,100);map3=CPoint(0,100);CPoint point;if(map.Lookup(2,point)TRACE(_T(“2=(%d,%d)n”),point.x,point.y);类型指针类类型指针类类 名说 明CTypedPtrArray 管理指针数组CTypedPtrList管理指针链接列表CTypedPtrMap管理使用指针作为项目或关键字的映射类

14、型指针类类型指针类lCTypedPtrList list;fot(int i=0;i10;i+)int x=i*10;Cline*pLine=new Cline(x,0,x,100);list.AddTail(pLine);POSITION pos=list.GetHeadPosition();while(pos!=NULL)Cline*pLine=list.GetNext(pos);集合类集合类类型 有序索 引插入速度 查询速度 复制元素Array是是(整数索引值)慢慢可以List是否快慢可以Map否是(关键字)快快实值可以基于模板的集合类基于模板的集合类lCArray lCList lCMap lCTypedPtrArray lCTypedPtrList lCTypedPtrMap 基于模板的集合类基于模板的集合类l元素类型为自创类时,如调用查询函数,须重载=运算符或CompareElements函数。l元素类型为指针时,全部删除前须逐一删除被删除指针所指对象。

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|