当前课程知识点:C++语言程序设计进阶 >  第十章 泛型程序设计与C++标准模板库 >  导学 >  导学

返回《C++语言程序设计进阶》慕课在线视频课程列表

导学在线视频

下一节:泛型程序设计的基本概念

返回《C++语言程序设计进阶》慕课在线视频列表

导学课程教案、知识点、字幕

大家好

欢迎回来继续学习

C++语言程序设计

这一周呢

我和李超老师要一起

为大家介绍泛型程序设计

和C++的STL标准模板库

在前面的章节中

很多例题中

我们已经多多少少用过一些

标准模板库里面的模板了

比如说我们引用过

这个vector向量类模板了

同学们可能也知道

这个STL库里面有很多好东西

有很多宝贝

今天我们就来一起

带大家来寻宝

有什么宝贝呢

那我们想想到现在为止

我们编程序还需要些什么呢

学了前面的内容

我相信大家已经觉得

现在写程序已经比较自如了

但是我们如果什么东西

都从刀耕火种开始自己动手来写

这个工作量也是蛮大的

虽然我们自己设计的类

还有类的继承关系这些

都可以帮我们进行代码的复用

但是我们知道

STL库中有很多宝贝

我们要能把这些宝贝

都继承过来

拿来直接使用

那我们写程序的效率

不就更高了吗

是的

这里面有些什么宝贝

接下来

李超老师给大家介绍一下

泛型程序设计就是指

把代码从特定的数据结构中

分离出来

使得它不依赖于特定的数据结构

而更加通用

那么我们基于算法的抽象

和数据容器的抽象

就可以实现更高层次的代码复用

是这样的

实际上

这个库是一个开放的 可扩展的

由于容器可以通用

适用于所有数据类型

而算法又

独立于容器

这样的话呢

当增加新容器的时候

原有的算法

也是可以适用于新容器的

当增加新算法的时候

那么新算法

适用于原有的容器

也是没有问题的

所以这个可扩展性其实非常好

对 非常的方便

那我们接下来郑老师

会给大家介绍的STL这个库呢

实际上就是

泛型程序设计中的一个

非常好的典范

既然算法和容器

它彼此独立

那算法处理的对象

应该是容器里面的数据

这个数据怎么传过去呢

很奇妙

通过一个叫迭代器的东西

也就是说

每个容器能够把自己的迭代器

给它反馈出来

把迭代器给到算法

迭代器是什么

其实就是泛型的指针

它就像指针一样

相当于算法得到了容器里面

反馈出来的迭代器

用迭代器就可以遍历

和访问容器里面的元素

就可以对它进行操作

而不需要把一个具体的容器

传给算法

这样的话呢

算法就更为通用

就可以作用于多种容器

大家觉得是不是有点抽象

有点费解呢

你先把这个所谓的迭代器

想成一个功能更为强大

特别强大的指针就行了

对吧

对 除此之外呢

我们还会有一个适配器的概念

会使得这些已经本来很强大

很灵活的算法

容器和迭代器

更加的灵活和通用

是啊

适配器实际上

它就是一种

在原有的类模板基础上

附加的一种接口

或者说限制 对吧

像比如说我们可以有

这种顺序容器

但是在顺序容器之上呢

我们加上适配器

就可以有栈 队列

这些结构就出来了

我们在第九章的时候

其实学过

栈 队列

它都存取操作受限制的线性表

那么实际上在STL库里面

也是这样实现的

就是在顺序容器的基础之上

加上适配器

那么实际上函数

也有函数的适配器

有的时候呢

我们的函数不是那么恰好符合

要用的那个使用的需要

这个时候呢

加个适配器转换一下

就好使了

大概适配器就这么个意思

那这一章呢

还是我来给大家

介绍基本概念 基本语法

以及这个STL库的大致的结构

还有呢

很多验证性的例子

这一章呢

书上的例子特别多

有20多个例子

在我的课里面

也会给大家讲10几个例子

还有一些例子大家去看书

那么李超老师呢

会给大家带来综合实例

以及实验

这一章

其实学习这一章的最好办法

就是从模仿开始 对吧

因为STL库确实太庞大了

而且 初学者真的一开始

看见这个库就找不着北

所以

这一章咱们给的例子比较多

你还有综合实例给大家

大家先从模仿开始

其实模仿

是不是也是一种很好的学习方式

模仿是非常好的学习方式

那么大家可以在

模仿和理解郑老师给大家

举的各种例子之外呢

在实验的环节

自己动手去试一试

在实验的环节呢

我们将让大家去体验一下

怎么样使用容器

我们会实现一个双端队列

然后怎么样去使用算法

我们STL模板库中的查找

和排序算法

来体会它的精妙

和它的强大

那在综合实例里头呢

我们将用vector

来替代之前的array

来实现更加简洁的代码实现

除此之外呢

我们还会用

多映射结构

来使得我们的范围查找

更加的方便 更加的快捷

C++语言程序设计进阶课程列表:

第七章 继承与派生

-导学

--导学

-继承的基本概念和语法

--继承的基本概念和语法

-第七章 继承与派生--继承的基本概念和语法习题

-继承方式

--继承方式简介及公有继承

--私有继承和保护继承

-第七章 继承与派生--继承方式

-基类与派生类类型转换

--基类与派生类类型转换

-第七章 继承与派生--基类与派生类类型转换

-派生类的构造和析构

--派生类的构造函数

--派生类的构造函数举例

--派生类的复制构造函数

--派生类的析构函数

--第七章 继承与派生--派生类的构造和析构

-派生类成员的标识与访问

--访问从基类继承的成员

--虚基类

-第七章 继承与派生--派生类成员的标识与访问

-小结

--小结

-综合实例

--第七章综合实例

-实验七

--实验七

-第七章讲义

第八章 多态性

-导学

--导学

-第八章 多态性--导学

-运算符重载

--运算符重载的规则

--双目运算符重载为成员函数

--单目运算符重载为成员函数

--运算符重载为非成员函数

-第八章 多态性--运算符重载

-虚函数

--虚函数

--虚析构函数

--虚表与动态绑定

-第八章 多态性--虚函数

-抽象类

--抽象类

--第八章 多态性--抽象类

-override与final

--override与final

-第八章 多态性--override与final

-小结

--第八章小结

-综合实例

--第八章综合实例

-实验八

--实验八

- 第八章讲义

第九章 模板与群体数据

-导学

--导学

-模板

--函数模板

--类模板

-第九章 模板与群体数据--模板

-线性群体

--线性群体的概念

-第九章 模板与群体数据--线性群体

-数组

--数组类模板

--例9-4数组类应用举例

-链表

--链表的概念与结点类模板

--链表类模板

-第九章 模板与群体数据--链表

-栈

--栈类模板

--栈类模板课后习题

--例9-9 栈的应用

--例9-9 栈的应用课后习题

-队列

--队列类模板

-第九章 模板与群体数据--队列

-排序

--排序概述

--插入排序

--选择排序

--交换排序

-第九章 模板与群体数据--排序

-查找

--查找

--查找课后习题

-小结

--小结

-综合实例

--综合实例

-实验九

--实验九

- 第九章讲义

第十章 泛型程序设计与C++标准模板库

-导学

--导学

-泛型程序设计及STL的结构

--泛型程序设计的基本概念

--STL简介

-第十章 泛型程序设计与C++标准模板库--泛型程序设计及STL的结构

-迭代器

--迭代器

-第十章 泛型程序设计与C++标准模板库--迭代器

-容器的基本功能与分类

--容器的基本功能与分类

-第十章 泛型程序设计与C++标准模板库--容器的基本功能与分类

-顺序容器

--顺序容器的基本功能

--顺序容器的特征

--顺序容器的插入迭代器与适配器

--第十章 泛型程序设计与C++标准模板库--顺序容器

-关联容器

--关联容器分类和基本功能

--集合

--映射

--多重集合和多重映射

-第十章 泛型程序设计与C++标准模板库--关联容器

-函数对象

--函数对象

--函数适配器

-算法

--算法

-小结

--第十章小结

-综合实例

--综合实例

-实验十

--实验十

- 第十章讲义

第十一章 流类库与输入/输出

-导学

--导学

-I/O流的概念及流类库结构

--I/O流的概念及流类库结构

-第十一章 流类库与输入/输出--I/O流的概念及流类库结构

-输出流

--输出流概述

--向文本文件输出

--向二进制文件输出

--向字符串输出

-第十一章 流类库与输入/输出--输出流

-输入流

--输入流概述

--输入流应用举例

--从字符串输入

-第十一章 流类库与输入/输出--输入流

-输入/输出流

--输入/输出流

-第十一章 流类库与输入/输出--输入/输出流

-小结

--小结

-综合实例

--综合实例

-实验十一

--实验十一

- 第十一章讲义

第十二章 异常处理

-导学

--第12章导学

-异常处理的思想与程序实现

--异常处理的思想与程序实现

-第十二章 异常处理--异常处理的思想与程序实现

-异常处理中的构造与析构

--异常处理中的构造与析构

-第十二章 异常处理--异常处理中的构造与析构

-标准程序库异常处理

--标准程序库异常处理

-第十二章 异常处理--标准程序库异常处理

-小结

--第12章小结

-综合实例

--综合实例

-实验十二

--实验十二

- 第十二章讲义

导学笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。