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

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

算法在线视频

算法

算法

STL算法特点

STL算法分类

不可变序列算法

可变序列算法

排序和搜索算法

数值算法

算法应用举例



下一节:第十章小结

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

算法课程教案、知识点、字幕

大家好

欢迎回来继续学习

C++语言程序设计

这一节我为大家简单介绍一下

STL里面的算法

STL里面的算法

实际上就是一些函数模板

它是通用的

独立于数据类型的

STL算法

都是一些函数模板

可以通过迭代器获得输入数据

通过函数对象

对数据进行处理

最后再通过迭代器将结果输出

STL的算法呢通用

独立于数据类型

独立于容器类型

我们可以将STL的算法

分成这样几类

不可变序列算法

可变序列算法

排序和搜索算法

还有数值算法

不可变序列算法呢

它不直接修改所操作的容器内容

比如说用于查找指定的元素

比较两个序列是否相等

对元素进行计数等等

那这里

给了一个简单的例子呢

就是用于查找

从first到last区间类

这个Pred为真的首个元素

而这个pred是个什么呢

是个一元谓词函数对象

这就是find_if这个算法

它的功能

可变序列算法

可以修改

它们所操作的容器对象

包括对序列进行复制 删除

替换 倒序 旋转 交换

分割 去重 填充 洗牌

以及生成一个序列

这个例子呢

给出了find_if的另外一种用法

用这样的形式

我们可以将

从first到last区间的元素

全部改写为x

排序和搜索算法呢

能够对序列进行排序

对两个有序序列进行合并

对有序序列进行搜索

还有 有序序列的集合操作

还有堆算法

比如说这里举这个例子

这个sort

就以函数对象comp

为小于比较运算的这种功能

这个小于比较运算呢

是由comp函数对象传进来的

用这样的一个小于运算的定义

对于first和last区间的数据

进行了排序

STL里面的数值算法呢

包括求序列中元素的和

部分和 相邻元素的差

或者两个序列的内积

还有求和的+

求差的-

以及求内积的+和点

它们都是由函数对象来指定的

比如说我们在这个例子中

对从first到last这个区间的元素

求部分和

所谓部分和就是

一个长度与输入序列

相同的序列

其中第n项

为输入序列的前n个元素的和

以函数对象

以传进来这个函数对象op

作为加法运算符

所以这个+呢是带引号的+

到底它的含义是什么

根据你传进来的函数对象来决定

那最后的结果呢

要通过result输出

这个操作它的返回值是

返回的迭代器

指向输出序列的最后一个

元素的下一个元素

这一章的教材中的例20

到例23呢

演示了几类算法的应用方法

由于课时的关系呢

我们在这里就不一一为大家讲了

这几个例题逻辑非常简单

大家很容易看懂

那么请大家课后

去看教材里面的例题讲解

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章小结

-综合实例

--综合实例

-实验十二

--实验十二

- 第十二章讲义

算法笔记与讨论

也许你还感兴趣的课程:

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