模板与标准模板库.ppt

模板与标准模板库.ppt

ID:52320011

大小:3.69 MB

页数:46页

时间:2020-04-04

模板与标准模板库.ppt_第1页
模板与标准模板库.ppt_第2页
模板与标准模板库.ppt_第3页
模板与标准模板库.ppt_第4页
模板与标准模板库.ppt_第5页
资源描述:

《模板与标准模板库.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第7章模板与标准模板库STL----灵活、可扩展、可重用的软件模块上海大学机电工程与自动化学院雷电引言:对象管理上海大学机电工程与自动化学院雷电对象管理创建对象:占据内存使用对象:Set,Get,IO,change……缓存(保存)对象:因为数据的产生与消费不同时不同步释放对象:不再占据内存内存区域:栈:自动局部变量,参变量堆:动态内存分配,只能通过指针间接访问。静态存储区:全局变量,静态变量,常数块上海大学机电工程与自动化学院雷电对象管理----基于数组的方法1.通过下标访问或遍历数组元素2.通过指针访问或遍历数组元素数组元素就是对象数组元素是

2、对象的指针(地址),当对象个数不确定且对象很大时采用此方法。1.确定的元素个数(数组长度)2.创建足够长的数组,元素个数不确定时。1)使用一个变量记录实际的元素个数2)不够时重新创建并复制原有的数据上海大学机电工程与自动化学院雷电classCSame{public:inttype;...};例1:CSamegList[2000];intN=0;。。。//添加新对象时的编程gList[N].type=0x100;N++;例2:CSame*gList[2000];intN=0;。。。//添加新对象时的编程gList[N]=newCSame;gLis

3、t[N]->type=…;N++;上海大学机电工程与自动化学院雷电对象管理----基于链表的方法引言:基于数组的表在需要更灵活的处理方法时是不够的.,如一个定票系统.数组是一种定长结构,内存顺序存放.数组优点是访问一个元素方便,但在中间插入删除元素和变长操作严重影响性能.好的方案是:动态内存分配元素(结点).这些元素(结点),在内存非顺序存放,且有全局生命周期,都通过指针连接在一起.描述一个链表:上海大学机电工程与自动化学院雷电一种新的存储模式,链条模型:插入后:删除后:链表的长度可以无限增加(只限于内存大小),数据元素在内存中非连续存放上海大

4、学机电工程与自动化学院雷电结点结点链表中的结点必须是结构体变量,结点的数据类型至少包含两部分信息:1)数据.2)下个结点的地址(指针)。structNODE{ElemTypedata;structNODE*next;};例:structStudent{intnum;floatscore;structStudent*next;};数据头指针、尾指针只要知道第一个结点的地址(指针)就可以访问到所有结点,指向第0个结点(头结点的)的指针称为头指针。已知头指针也就确定了整个链表。单链表中最后结点(尾结点)的指针域值=NULL(即等于0),不指向任何内存

5、单元。headNULL上海大学机电工程与自动化学院雷电标准C++类库概述10年的争论,有了C++库的ANSI/ISO标准-----StandardTemplateLibrary(STL),是ANSI/ISOC++最有特色、最实用的部分之一。STL包括:输入输出类容器类与ADT(抽象数据类型)算法存储管理错误处理语言环境上海大学机电工程与自动化学院雷电7.1模板的基本知识使用面向对象方法构建软件系统,我们可以利用OO的特性,很好的解决纵向的问题,因为,OO的核心概念,如继承等,都是纵向结构的。但是,在软件系统中,往往有很多模块,或者很多类共享某个

6、行为,或者说,某个行为存在于软件的各个部分中,这个行为可以看作是“横向”存在于软件之中.例:先进后出行为(栈)代码重用:垂直性:继承、多态水平性:模板(参数化)例:函数的参数其数据类型是参数化的。如:Ta;例:数组类、队列类等,其中的元素的类型是参数化的。上海大学机电工程与自动化学院雷电模板函数用关键字template描述的形式参数修饰函数templateT1,T2,…用来说明函数的参数类型。例:求两数中较大的数。templateTmaxV(Ta,Tb){returna>b?a:b;}ma

7、in(){doublea=maxV(0.1,0.2);intd=maxV(1,2);}例:查找templateintSeqSearch(Tlist[],Tkey,intn){for(inti=0;iclass类名{……};T1,T2,…用来说明类中数据成员和成员函数的类型。2.模板类方法的外联式的实现:template

8、lassT2,….>类型类名::成员函数(…..){…}3.创建模板类对象模板类不是实例类,模板类的模板参数必须有具体的实例类才能创

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。