清华大学:《C++语言程序设计》课程教学资源(PPT课件)第十章 C++标准模板库

C++语言程序设计 第十章C艹标准模板库 清华大学郑莉 大斗
第十章 C++标准模板库 清华大学 郑 莉 C++语言程序设计

C++语言程序设计 清华大学郏莉 主要内啥 泛型程序设计 ●与标准模板库有关的概念和术语 ●C++标准模板库中的容器 ●迭代器 标准C++库中的算法 函数对象
C++语言程序设计 清华大学 郑莉 2 主要内容 ⚫ 泛型程序设计 ⚫ 与标准模板库有关的概念和术语 ⚫ C++标准模板库中的容器 ⚫ 迭代器 ⚫ 标准C++库中的算法 ⚫ 函数对象

C++语言程序设计 清华大学郏莉 乏剋程序设计 将程序写得尽可能通用 将算法从特定的数据结构中抽象出来,成 为通用的 ●C++的模板为泛型程序设计奠定了关键的 基础 ●STL是泛型程序设计的一个范例 容器( container) 迭代器 iterator) 算法( algorithms) 函数对象( function object) 3
C++语言程序设计 清华大学 郑莉 3 泛型程序设计 ⚫ 将程序写得尽可能通用 ⚫ 将算法从特定的数据结构中抽象出来,成 为通用的 ⚫ C++的模板为泛型程序设计奠定了关键的 基础 ⚫ STL是泛型程序设计的一个范例 – 容器(container) – 迭代器(iterator) – 算法(algorithms) – 函数对象(function object)

C++语言程序设计 清华大学郑莉 命名空间( Namespace) 个命名空间将不同的标识符集合在一个 概命名作用域 ( named scope)内 为了解决命名冲突 念和术语 例如,声明一个命名空间NS: namespace Ns t class File void Fun o: 则引用标识符的方式如下, NS: File obj: NS∷FunO 没有声明命名空间的标识符都处于无名的 命名空间中
C++语言程序设计 清华大学 郑莉 4 命名空间(Namespace) ⚫ 一个命名空间将不同的标识符集合在一个 命名作用域(named scope)内 – 为了解决命名冲突 – 例如,声明一个命名空间NS: namspace NS { class File; void Fun (); } 则引用标识符的方式如下, NS:: File obj; NS:: Fun (); ⚫ 没有声明命名空间的标识符都处于无名的 命名空间中 概 念 和 术 语

C++语言程序设计 清华大学郑莉 命名空间( Namespace) ●可以用 using来指定命名空间 概念和术语 例如,经过以下声明: using NS: File: 在当前作用域中就可以直接引用Fie using namespace std 命名空间std中所有标识符都可直接引用 在新的C+标准程序库中,所有标识 符都声明在命名空间std中,头文件 都不使用扩展名
C++语言程序设计 清华大学 郑莉 5 命名空间(Namespace) ⚫ 可以用using来指定命名空间 – 例如,经过以下声明: using NS::File; 在当前作用域中就可以直接引用File – using namespace std; 命名空间std中所有标识符都可直接引用 ⚫ 在新的C++标准程序库中,所有标识 符都声明在命名空间std中,头文件 都不使用扩展名 概 念 和 术 语

C++语言程序设计 清华大学郏莉 概容器类是容纳、包含一组元素或元素 念。异类容器类与同类容器类 顺序容器与关联容器 语七种基本容器: 向量( vector)、双端队列( deque) 列表(list)、集合(set)、多重集合 ( multiset、映射(map)和多重映射 (multimap
C++语言程序设计 清华大学 郑莉 6 容器 ⚫ 容器类是容纳、包含一组元素或元素 集合的对象。 ⚫ 异类容器类与同类容器类 ⚫ 顺序容器与关联容器 ⚫ 七种基本容器: – 向量(vector)、双端队列(deque)、 列表(list)、集合(set)、多重集合 (multiset)、映射(map)和多重映射 (multimap) 概 念 和 术 语

C++语言程序设计 清华大学郏莉 容器的接口 通用容器运算符 方法(函数) 迭代方法 o begin(, endO, begin(, rendO 访问方法 e size(, max size, swap(, empty
C++语言程序设计 清华大学 郑莉 7 容器的接口 ⚫ 通用容器运算符 – ==,!=,>,>=,<,<=,= ⚫ 方法(函数) –迭代方法 ⚫ begin(),end(),rbegin(),rend() –访问方法 ⚫ size(),max_size(),swap(),empty()

C++语言程序设计 清华大学郏莉 活配器 概适配器是一种接口类 念 为已有的类提供新的接口。 目的是简化、约束、使之安全、隐藏或 者改变被修改类提供的服务集 术。三种类型的适配器: 语 容器适配器 用来扩展7种基本容器,它们和顺序容器相结 合构成栈、队列和优先队列容器 迭代器适配器 函数对象适配器
C++语言程序设计 清华大学 郑莉 8 适配器 ⚫ 适配器是一种接口类 – 为已有的类提供新的接口。 – 目的是简化、约束、使之安全、隐藏或 者改变被修改类提供的服务集合。 ⚫ 三种类型的适配器: – 容器适配器 ⚫ 用来扩展7种基本容器,它们和顺序容器相结 合构成栈、队列和优先队列容器 – 迭代器适配器 – 函数对象适配器。 概 念 和 术 语

C++语言程序设计 清华大学郏莉 迭代器 概 迭代器是面向对象版本的指针,它 念们提供了访问容器、序列中每个元素的 方法。 术语
C++语言程序设计 清华大学 郑莉 9 迭代器 迭代器是面向对象版本的指针,它 们提供了访问容器、序列中每个元素的 方法。 概 念 和 术 语

C++语言程序设计 清华大学郏莉 算法 概C++标准模板库中包括70多个算法 念 其中包括査找算法,排序算法,消除算 法,记数算法,比较算法,变换算法 置换算法和容器管理等等 ●这些算法的一个最重要的特性就是它 语们的统一性,并且可以广泛用于不同 的对象和内置的数据类型
C++语言程序设计 清华大学 郑莉 10 算法 ⚫ C++标准模板库中包括70多个算法 – 其中包括查找算法,排序算法,消除算 法,记数算法,比较算法,变换算法, 置换算法和容器管理等等。 ⚫ 这些算法的一个最重要的特性就是它 们的统一性,并且可以广泛用于不同 的对象和内置的数据类型。 概 念 和 术 语
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第一章 绪论(主讲:郑莉).ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第七章 系统设计.ppt
- 陕西科学技术出版社:《计算机基础实用教程》PDF电子书(共六章).pdf
- 《Flash动画设计教程》PPT教学课件(共五章).ppt
- 南开大学:《上机试习题集—二级C语言程序设计》PDF电子书(编程和改错各100例).pdf
- 《C语言程序设计》课程教学资源(PPT课件)PPT课件 第五章 数组.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第21章 Java SE6新功能简介.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第20章 JDBC入门.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第19章 文本编辑器.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第18章 舍遗补缺.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第17章 Annotation.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第16章 反射.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第15章 线程.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第14章 输入、输出.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第13章 对象容器.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第12章 泛型(Generics).ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第11章 枚举类型.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第10章 例外处理.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第9章 管理类别档案.ppt
- 清华大学出版社:《java学习笔记》教学资源(PPT课件,JDK6课件和课本代码)第8章 继承、多型.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第十一章 流类库与输入/输出.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第十二章 异常处理.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第十三章 MFC库与Windows程序开发概述.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第二章 C++简单程序设计.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第三章 函数.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第四章 类与对象.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第五章 C++程序的结构.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第六章 数组指针与字符串.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第七章 继承与派生.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第八章 继承与派生.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第九章 群体类和群体数据的组织.ppt
- 《C语言程序设计》课程教学资源:(英文版)FILES ON DISKS.doc
- 《C语言程序设计》课程教学资源:Doc1.doc
- 《C语言程序设计》课程教学资源:doc电子教材(全部)(共七章).doc
- 《C语言程序设计》课程教学资源:习题一答案.doc
- 《C语言程序设计》课程教学资源:习题三答案.doc
- 《C语言程序设计》课程教学资源:习题二答案.doc
- 《C语言程序设计》课程教学资源:习题四答案.doc
- 《C语言程序设计》课程教学资源:课后习题答案.ppt
- 《C语言程序设计》课程教学资源:实验1 学习使用BC环境袁宁).ppt