ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:18.12KB ,
资源ID:1528935      下载积分:8 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wnwk.com/docdown/1528935.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(2023年学习模板和集合类的建议.docx)为本站会员(g****t)主动上传,蜗牛文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知蜗牛文库(发送邮件至admin@wnwk.com或直接QQ联系客服),我们立即给予删除!

2023年学习模板和集合类的建议.docx

1、学习模板和集合类的建议 visualc+概念:添加功能 有关选择集合类的建议 本文提供详细信息,以帮助您选择适于特定应用程序需要的集合类。集合类的选择取决于许多因素,包括: 。 类形状的特性:排序、索引和性能,如本主题稍后介绍的集合形状特性表所示类是否使用c+模板 存储在集合中的元素是否可以序列化存储在集合中的元素是否可以转储以用于诊断集合是否是类型平安的 下表集合形状特性总结了可用集合形状的特性。 。 第2列和第3列描述了每个形状的排序和访问特性。在表中,术语“已排序表示按插入或删除项的顺序确定项在集合中的顺序,而不是指项按其内容排序。术语“已索引表示集合中的项可以通过整数索引检索,这和典型

2、数组中的项很相似。 。 第4列和第5列描述了每个形状的性能。在需要对集合执行屡次插入操作的应用程序中,插入速度可能特别重要;而对于其他应用程序,查找速度可能更重要。 。 第6列描述了每个形状是否允许重复元素。 集合形状特性 形状列表数组映射已排序。是是否已索引。否按整数按键插入元素搜索指定元素快慢快慢慢快重复元素。是是否(键)是(值)下表mfc集合类的特性总结了特定mfc集合类的其他重要特性,可以作为选择原那么。您的选择可能取决于特定的因素,如类是否基于c+模板,它的元素是否可以通过mfc的文档序列化机制序列化,它的元素是否可以通过mfc诊断转储机制转储,类是否是类型平安的,即是否可以保证存储

3、在基于类的集合中和从该集合中检索的元素类型。mfc集合类的特性 类carraycbytearraycdwordarrayclist使用c+模板是否否是可以序列化是1是是是1可以转储是1是是是1类型平安否是3是3否cmapcmapptrtoptrcmapptrtowordcmapstringtoobcmapstringtoptr是否否否否是1否否是否是是否是是否否是是取决于类型2取决于类型2取决于类型2否是是1是是是是是是是是是是是是是是是是是是否否否否否是3否否否否否否是3是3是是是是3是3cmapstringtostring否cmapwordtoobcmapwordtoptrcobarray

4、coblistcptrarraycptrlistcstringarraycstringlistctypedptrarrayctypedptrlistctypedptrmapcuintarraycwordarray 否否否否否否否否是是是否否1.假设要序列化,必须显式调用集合对象的serialize函数;假设要转储,必须显式调用集合对象的dump函数。不能用armymap1;cmapmymap2; 第一个例如存储my_struct值,通过int键访问这些值,并通过引用返回访问的my_struct项。第二个例如存储cperson值,通过cstring键访问这些值,并返回对访问项的引用。该例如可以表

5、示简单的通讯簿,可按姓氏在其中查找人员。 因为key参数的类型是cstring且key_type参数的类型是lpcstr,所以键作为cstring类型的项存储在映射中,但通过lpcstr类型的指针在setat等函数中被引用。例如:复制代码 cmapmymap2;cpersonperson; lpcstrlpstrname=mymap2-setat(lpstrname,person); 使用类型指针集合模板 假设要使用类型指针集合模板,需要知道可以在这些集合中存储的数据类型以及集合声明中所使用的参数类型。 类型指针数组和列表的用法 类型指针数组类ctypedptrarray和列表类ctypedp

6、trlist采用两个参数:base_class和type。这些类可以存储任何在type参数中指定的数据类型。它们从存储指针的某个非模板集合类中派生,在base_class中指定该基类。对于数组,使用cobarray或cptrarray。对于列表,使用coblist或cptrlist。 实际上,当基于某个类(比方coblist)声明集合时,新类不仅继承其基类的成员,还声明假设干其他的类型平安成员函数和运算符,这些函数和运算符通过封装对基类成员的调用来提供类型平安。这些封装管理所有必需的类型转换。例如:复制代码 ctypedptrarraymyarray;ctypedptrlistmylist;

7、第一个例如声明了从cobarray派生的类型指针数组myarray。该数组存储并返回指向cperson对象(其中cperson是从cobject派生的类)的指针。可以调用任何cobarray成员函数,或者可以调用新的类型平安函数getat和elementat或使用类型平安运算符。 第二个例如声明了从cptrlist派生的类型指针列表mylist。该列表存储并返回指向my_struct对象的指针。基于cptrlist的类用于存储指向不是派生自cobject的对象的指针。ctypedptrlist有假设干个类型平安成员函数:gethead、gettail、removehead、removetail

8、、getnext、getprev和getat。 类型指针映射的用法 类型指针映射类ctypedptrmap采用三个参数:base_class、key和value。base_class参数指定从中派生新类的基类:cmapptrtoword、cmapptrtoptr、cmapstringtoptr、cmapwordtoptr、cmapstringtoob等。key类似于cmap中的key:指定用于查找的键的类型。value类似于cmap中的value:指定存储在映射中的对象类型。例如:复制代码 ctypedptrmapmyptrmap;ctypedptrmapmyobjectmap; 第一个例如是

9、基于cmapptrtoptr的映射,它使用映射到指向my_struct的指针的cstring键。可通过调用类型平安的lookup成员函数来查找存储的指针。可以使用运算符查找存储的指针;如果没有找到,那么添加它。并且可以使用类型平安的getnextassoc函数迭代映射。也可以调用cmapptrtoptr类的其他成员函数。 第二个例如是基于cmapstringtoob的映射,它使用映射到指向cmyobject对象的存储指针的字符串键。可以使用在前面的段落中描述的同一类型平安成员,或调用cmapstringtoob类的成员。 注意如果为value参数指定class或struct类型,而不是指定指向

10、该类型的指针或对该类型的引用,那么类或结构必须具有复制构造函数。有关更多信息,请参见如何创立类型平安集合。 cobject类的特性 下面,对三种特性分别描述,并说明程序员在派生类中支持这些特性的方法。 1.对运行时类信息的支持 该特性用于在运行时确定一个对象是否属于一特定类(是该类的实例),或者从一个特定类派生来的。cobject提供iskindof函数来实现这个功能。 从cobject派生的类要具有这样的特性,需要: 定义该类时,在类说明中使用declare_dynamic(classnmae)宏; 。在类的实现文件中使用implement_dynamic(classname,basecla

11、ss)宏。 。 1.对动态创立的支持 前面提到了动态创立的概念,就是运行时创立指定类的实例。在mfc中大量使用,如前所述框架窗口对象、视对象,还有文档对象都需要由文档模板类(cdoctemplate)对象来动态的创立。从cobject派生的类要具有动态创立的功能,需要: 定义该类时,在类说明中使用declare_dyncreate(classnmae)宏;。定义一个不带参数的构造函数(默认构造函数); 。在类的实现文件中使用implement_dyncreate(classname,baseclass)宏; 。 学习模板和集合类的建议.doc免费为全国范文类知名网站,下载全文稍作修改便可使用,即刻完成写稿任务。 支付6元已有11人下载 下载这篇word文档 学习模板和集合类的建议(2).doc免费为全国范文类知名网站,下载全文稍作修改便可使用,即刻完成写稿任务。 支付6元已有11人下载 下载这篇word文档 第7页 共7页

copyright@ 2008-2023 wnwk.com网站版权所有

经营许可证编号:浙ICP备2024059924号-2