C 10(STL容器).ppt


文档分类:IT计算机 | 页数:约42页 举报非法文档有奖
1/42
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/42
文档列表 文档介绍
1 第 10 章标准模板库主要内容: 2 STL 1. STL 的基本思想?可以把软件部件想象成一个三维空间?第一维表示数据类型( int , double, char, …) ?第二维表示容器( array, linked-list, …) ?第三维表示算法( sort, merge, search, …) ?根据图示,需要设计 i*j*k 个不同的代码版本,比如整数数组的排序算法、 double 数组的排序算法, double linked-list 的搜索算法…。 int ,double,char, … array, linked-list … sort,merge, search, …k ij3 ?通过使用数据类型作为参数的模板函数,第一维(i轴)就可取消,而仅需要设计 j*k个不同的代码。?下一步是让算法可以工作在不同的容器上,这就意味着排序算法既可以用在 array 上,也可用在 linked-list 上。即只需要设计 j+k 个不同的代码版本。 STL 具体化了上述思想,期望通过减少开发时间以简化软件开发,简化调试、维护并增加代码的可移植性。 4 STL ?标准模板库( Standard Template Library, STL) ,是 ANSI/ISO C++ 最新的标准函数库中的一个子集,是一个泛型化( generic) 的数据结构和算法库。(如图 1) ?从逻辑层次来看,在 STL 中体现了泛型化程序设计( GP) 的思想, 引入了诸多新的名词, 比如像需求(requirements) 概念(concept) 模型(model) 容器( container ) 算法(algorithm) , 迭代子(iterator ) 等。与OOP 中的多态( polymorphism ) 一样,泛型也是一种软件的复用技术。?从实现层次看,整个 STL 是以一种类型参数化( type parameterized ) 的方式实现的,这种方式基于 C++ 语言的模板机制。 5 图1 STL 和C++ 标准函数库 6 ? STL 中的软件包主要包括: ?容器( Container) : 一种存储有限集合数据元素的数据结构,例如,向量、列表、集合、映射等。?迭代器( Iterator ): 或称游标,是一种面向对象的泛型指针,实现对容器中的任意类型对象的遍历,从而对各对象进行处理。?算法库( Algorithms) : 包括了各种基本算法,如 sort,copy,search, revese 等,对容器中的对象进行各种操作。?函数对象( Function Object) : 定义了函数调用操作符( operator()) 的类。?适应器( Adaptor) : 封装一个部件以提供另外的接口(例如用 list 实现 stack) 。 7 一般而言, STL 作为一个泛型化的数据结构和算法库,并不牵涉具体语言(当然,在 C++ 里,它被称为 STL )。即如果条件允许,用其他语言也可以实现之。这里所说的条件,主要是指类似于“模板”这样的语法机制。 1. STL 和 MFC 的差别?相同: STL 和 MFC 都是一种 C++ 类库。?不同: MFC 是 Microsoft 的一个产品, STL 是 ANSI/ ISO C++ 标准的一部分,是所有 C++ 编译器和所有操作系统平台都支持的一种类库。 2. STL 的组织?在 C++ 标准中, STL 被组织为下面的 13 : < algorithm> 、< deque >、<functional> 、< iterator >、<vector> 、<list> 、<map> 、<memory> 、<numeric> 、<queue> 、<set> 、<stack> 和< utility> 。 8 ?例 ? P217 ?例 ? P217 9 STL 程序? Borland C++ 及以上的版本, Microsoft Visual C++ 及以上的版本支持 STL 。/ / MyFile . cpp #include “ stdafx .h”…#include <vector> using namespace std; void F1() {… vector < int > v(10); …} 10 容器类 ?容器?指一种存储有限集合数据元素的数据结构。?容器类?是一批相关的标准类模板的总称,它包含最基本的 7 个标准类模板,分为两大类: ?顺序容器类( Sequ

C 10(STL容器) 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数42
  • 收藏数0 收藏
  • 顶次数0
  • 上传人xxj16588
  • 文件大小187 KB
  • 时间2016-09-03