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

C++语言程序设计 第十章C+标准模板库
第十章 C++标准模板库 C++语言程序设计

C++语言程序设计 主要内容 泛型程序设计 ●与标准模板库有关的概念和术语 ●C++标准模板库中的容器 迭代器 标准C++库中的算法
C++语言程序设计 2 主要内容 ⚫ 泛型程序设计 ⚫ 与标准模板库有关的概念和术语 ⚫ C++标准模板库中的容器 ⚫ 迭代器 ⚫ 标准C++库中的算法

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

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

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

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

C++语言程序设计 迭代器 迭代器是面向对象版本的指针,它 概们棍供了访问容器、序列中每个元素的 念 和方法 术 理解迭代器是理解STL的关键。模 语板可以使算法独立于数据类型,迭代器 使算法独立于容器类型
C++语言程序设计 8 迭代器 迭代器是面向对象版本的指针,它 们提供了访问容器、序列中每个元素的 方法。 理解迭代器是理解STL的关键。模 板可以使算法独立于数据类型,迭代器 使算法独立于容器类型。 概 念 和 术 语

C++语言程序设计 算法 概C+标准模板库中包括70多个算法 念和 其中包括查找算法,排序算法,消除算 法,记数算法,比较算法,变换算法, 置换算法和容器管理等等 术 语这些算法的一个最重要的特性就是它 们的统一性,并且可以广泛用于不同 的对象和内置的数据类型
C++语言程序设计 9 算法 ⚫ C++标准模板库中包括70多个算法 – 其中包括查找算法,排序算法,消除算 法,记数算法,比较算法,变换算法, 置换算法和容器管理等等。 ⚫ 这些算法的一个最重要的特性就是它 们的统一性,并且可以广泛用于不同 的对象和内置的数据类型。 概 念 和 术 语

C++语言程序设计 表10-1所有容器都通用的成员函数 ct,ct和ct2是同类型的容器。 成员函数 作用 默认构造函数初始化对象为空 带参数的构造函数除了默认的构造函数,每一个容器都有带参数的构造函数 拷贝构造函数在发生下列情况之一时执行:当一个对象作为参数进行值 传递时;当用另一个同类型的对象来声明和初始化对象时 当一个函数的返值是一个对象时 析构函数 当对象退出作用域时执行 ct. empty 如果容器是空,返回true,否则返回 false ct.size 以无符号整型数返回容器ct中的元素数目 ct. max size)以无符号整型数返回容器t中可插入的元素数目 ct swap(c1,c2)交换容器c1和c2中的元素 ct. begin 返回容器中第一个元素的迭代器的值 ct. endo 返回容器中最后一个元素的迭代器的值
C++语言程序设计 10 成员函数 作 用 默认构造函数 初始化对象为空 带参数的构造函数 除了默认的构造函数,每一个容器都有带参数的构造函数。 拷贝构造函数 在发生下列情况之一时执行:当一个对象作为参数进行值 传递时;当用另一个同类型的对象来声明和初始化对象时; 当一个函数的返值是一个对象时 析构函数 当对象退出作用域时执行 ct.empty() 如果容器是空,返回true,否则返回false ct.size() 以无符号整型数返回容器ct中的元素数目 ct.max_size() 以无符号整型数返回容器ct中可插入的元素数目 ct.swap(c1,c2) 交换容器cl和c2中的元素 ct.begin() 返回容器中第一个元素的迭代器的值 ct.end() 返回容器中最后一个元素的迭代器的值 表10-1所有容器都通用的成员函数 ct,ct1和ct2是同类型的容器

C++语言程序设计 ct. rbegino 反向开始。返回指向容器ct中的最后一个元素 的指针 ct. rendo 反向结東。返回指向容器ct中第一个元素的指 针 ct. insert( position,elem)在容器ct中由变量 position(迭代器)指定的 位置处插入elem ct erase(begin, end) 删除所有从 begin到end的所有元素 ct. clear 删除容器中的所有元素。在调用了该函数之后 容器ct为空 运算符函数 ctl=ct2 把ct2的元素复制到ct1。在执行该操作后,两 个容器中的元素相同 ctl==ct2 如果容器ct1和ct2相等,返回true否则,返 回 false ctl=ct2 如果容器ct1和ct2不相等,返回true。否则, 返回 false
C++语言程序设计 11 ct.rbegin() 反向开始。返回指向容器ct中的最后一个元素 的指针 ct.rend() 反向结束。返回指向容器ct中第一个元素的指 针 ct.insert(position,elem) 在容器ct中由变量position(迭代器)指定的 位置处插入elem ct.erase(begin,end) 删除所有从begin到end的所有元素 ct.clear() 删除容器中的所有元素。在调用了该函数之后, 容器ct为空 运算符函数 ct1=ct2 把ct2的元素复制到ctl。在执行该操作后,两 个容器中的元素相同 ctl==ct2 如果容器ctl和ct2相等,返回true。否则,返 回false ct1!=ct2 如果容器ctl和ct2不相等,返回true。否则, 返回false
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第九章 群体类和群体数据的组织.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第八章 多态性.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第七章 继承与派生.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第六章 数组、指针与字符串.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第五章 C++程序的结构.ppt
- The MIT Press:How to Design Programs——An Introduction to Computing and Programming.pdf
- 《计算机基础——系统安全》课程教学资源(PPT课件)第8章 安全协议.ppt
- 《计算机基础——系统安全》课程教学资源(PPT课件)第7章 认证 Authentication.ppt
- 《计算机基础——系统安全》课程教学资源(PPT课件)第10章 信息系统安全等级与标准.ppt
- 《计算机基础——系统安全》课程教学资源(PPT课件)第2篇 信息系统安全信任体系 第6章 数据加密与数据隐藏修改.ppt
- 《计算机基础——系统安全》课程教学资源(PPT课件)第2章 黑客.ppt
- 《计算机基础——系统安全》课程教学资源(PPT课件)第1章 病毒及其防治.ppt
- 《计算机基础——系统安全》课程教学资源(PPT课件)第3篇 信息系统安全体系结构与评估标准 第9章 信息系统安全体系结构.ppt
- 《计算机基础——系统安全》课程教学资源(PPT课件)第5章 信息系统安全事件响应.ppt
- 《计算机基础——系统安全》课程教学资源(PPT课件)第4章 信息系统安全监控.ppt
- 《计算机基础——系统安全》课程教学资源(PPT课件)第3章 信息系统隔离技术.ppt
- 泰州职业技术学院计算机信息管理(成人高职)专业教学计划.doc
- 《MATLAB程序设计》课程电子教案(PPT课件讲稿)第9章 MATLAB符号计算.ppt
- 《MATLAB程序设计》课程电子教案(PPT课件讲稿)第8章 MATLAB数值积分与微分.ppt
- 《MATLAB程序设计》课程电子教案(PPT课件讲稿)第7章 MATLAB解方程与函数极值.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第十一章 流类库与输入/输出.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第十二章 异常处理.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)课程简介(李莉).ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第一章 绪论.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第二章 C++简单程序设计.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第三章 函数.ppt
- 清华大学:《C++语言程序设计》课程教学资源(PPT课件)第四章 类与对象.ppt
- 武汉大学遥感信息工程学院:《数字图像处理》课程教学资源(PPT课件讲稿)第一章 绪论(主讲:贾永红).pps
- 武汉大学遥感信息工程学院:《数字图像处理》课程教学资源(PPT课件讲稿)第二章 基本概念.pps
- 武汉大学遥感信息工程学院:《数字图像处理》课程教学资源(PPT课件讲稿)第三章 图像变换.pps
- 武汉大学遥感信息工程学院:《数字图像处理》课程教学资源(PPT课件讲稿)第四章 图像增强.pps
- 武汉大学遥感信息工程学院:《数字图像处理》课程教学资源(PPT课件讲稿)第五章 图像复原与重建.pps
- 武汉大学遥感信息工程学院:《数字图像处理》课程教学资源(PPT课件讲稿)第六章 图像编码与压缩.pps
- 武汉大学遥感信息工程学院:《数字图像处理》课程教学资源(PPT课件讲稿)第七章 图像分割.pps
- 计算机基础知识(PPT讲稿).ppt
- 《CAD/CAM/CAPP》课程教学资源(PPT讲稿)导课.ppt
- 《CAD/CAM/CAPP》课程教学资源(PPT讲稿)第二章 CAD/CAM子系统的体系结构.ppt
- 《CAD/CAM/CAPP》课程教学资源(PPT讲稿)第一章 概述.ppt
- 《CAD/CAM/CAPP》课程教学资源(PPT讲稿)第四章CAD(Drawing or Drafting)软件中的图形处理技术、相关算法(思路)及软件界面、功能简介.ppt
- 《CAD/CAM/CAPP》课程教学资源(PPT讲稿)06.ppt