该【泛型程序设计与CSTL简介 】是由【mxh2875】上传分享,文档一共【77】页,该文档可以免费在线阅读,需要了解更多关于【泛型程序设计与CSTL简介 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。Your name
第十五章 泛型程序设计与C++STL简介
Adjust the spacing to adapt to Chinese typesetting
2
04.
03.
02.
01.
掌握泛型程序设计思想以及概念;
掌握STL中顺序容器的使用,了解关联容器;
掌握迭代器的使用;
了解泛型算法和函数对象。
学习目标
3
04.
03.
02.
01.
1 泛型程序设计的概念和术语
泛型程序设计
STL的相关概念和术语
2 C++STL中的容器
目录
05.
顺序容器
06.
关联容器
4
02.
3 迭代器
阶段工作回顾
取得的成绩与经验
目录(续)
5
04.
03.
02.
01.
4 标准C++库中的算法简介
数值算法
5 函数对象
函数对象
目录(续)
05.
函数适配器
泛型程序设计
6
泛型程序设计是继面向对象程序设计之后的又一种程序设计方法。
泛型程序设计就是让程序写得通用,能够适用于各种数据类型与数据结构,并且并不损失程序效率。面向对象与泛型程序设计这两种程序设计方法并不矛盾,而是相得益彰。
标准模板库( Standard Temp late L ibrary,简称STL)是建立在C++中模板机制上的泛型程序设计思想的实现。
标准模板库相关概念和术语
容器是存放其他对象的对象。比如我们常见的C++内置数组,从广义上讲也属于一种容器。容器可以存放同一种类型的一组元素或对象,称为同类容器类(homogenous constainer);或者存放不同类型的的元素或对象时,称为异类容器类(heterogenous constainer)。对于STL容器库,其包含了两类容器,一种为顺序容器(sequence contsainer),另一种为关联容器(associative container)。
在C++中,我们经常使用指针。而迭代器就是相当于指针,它提供了一种一般化的方法使得C++程序能够访问不同数据类型的顺序或者关联容器中的每一个元素,我们可以称它为“泛型指针”。
STL定义了五种迭代器类型,前向迭代器(forward iterator),双向迭代器(bidirectional iterator),输入迭代器(input iterator),输出迭代器(output iterator),随机访问迭代器(random access iterator)。
容器
迭代器
标准模板库相关概念和术语
函数对象是STL提供的四种组件中的一种,它是定义了操作符【operator( )】的对象。在C++中,除了定义了操作符operator( )的对象之外,普通函数或者函数指针也满足函数对象的特征。结合函数模板的使用,函数对象使得STL更加灵活和方便,同时也使得代码更为高效。。
函数对象
算法
算法是STL中的核心,它它包含了70多个通用算法。可以分为四类:不可变序列算法(non-modifying sequence algorithms)、可变序列算法(mutating sequence algorithms)、排序及相关算法(sorting and related algorithms)和算术算法(numeric algorithms)。
标准模板库相关概念和术语
适配器是一种接口类,可以认为是标准组件的改装。通过修改其它类的接口,使适配器满足一定需求,可分为容器适配器、迭代器适配器和函数对象适配器三种。
适配器(adapter)
分配器是STL提供的一种内存管理类模块。每种STL容器都是用了一种分配器类,用来封装程序所用的内存分配模式的信息。不同的内存分配模式采用不同的方法从 操作系统中检索内存。分配器类可以封装许多方面的信息,包括指针、常量指针、引用、常量引用、对象大小、不同类型指针之间的差别、分配函数与释放函数、以及一些函数的信息。分配器上的所有操作都具有分摊常量的运行时间。
分配器(allocator)
标准模板库相关概念和术语
容器接口
STL为容器提供了一些公共接口,这些公共接口是通用的,也可以说是泛型的。这些都是容器设计的规范,对于容器而言,定义的公共接口主要有以下几个部分:
10
通用运算
说明
a==b
同类容器的相等比较操作,判断是否相等,相等则为true
a!=b
同类容器的不等比较操作,判断是否不等,不等则为true
a<b
两个容器大小判断,首先判断size,接着判断元素值,a<b则true
a>b
与上同,不过a>b时为true
a<=b
等同于!(a>b)
a>=b
等同与!(a<b)
r=b
赋值操作
泛型程序设计与CSTL简介 来自淘豆网m.daumloan.com转载请标明出处.