首页 > C++教程 > STL(标准模板库)
阅读:3,287
STL算法分类
在 STL 中,算法就是函数模板。STL 中的算法大多数是用来对容器进行操作的,如排序、 查找等。大部分算法都是在头文件 <algorithm> 中定义的,还有些算法用于数值处理,定义在头文件 <numeric> 中。
不同的教程对 STL 中的算法有不同的分类方法。本教程将算法分为以下七类:
本教程介绍前六类算法。第七类算法共有三个,除了前面已经介绍过的 accumulate 以外,另外两个算法既不常用,讲解起来又比较烦琐,本教程就不介绍了,有需要的读者可自行查阅相关资料。
有的算法可能同时属于多个分类。
许多算法都是重载的,有不止一个版本。篇幅所限,本教程往往只能列出其中的一个版本。有些算法也不给出原型,直接通过程序来演示其用法。
实际上,大多数重载的算法都有两个版本,其中一个用
类似 sort 和 min_element 这样有可自定义比较器版本的算法,在后文的表格中列出时,将加注“(可自定义比较器)”。
不同的教程对 STL 中的算法有不同的分类方法。本教程将算法分为以下七类:
- 不变序列算法。
- 变值算法。
- 删除算法。
- 变序算法。
- 排序算法。
- 有序区间算法。
- 数值算法。
本教程介绍前六类算法。第七类算法共有三个,除了前面已经介绍过的 accumulate 以外,另外两个算法既不常用,讲解起来又比较烦琐,本教程就不介绍了,有需要的读者可自行查阅相关资料。
有的算法可能同时属于多个分类。
许多算法都是重载的,有不止一个版本。篇幅所限,本教程往往只能列出其中的一个版本。有些算法也不给出原型,直接通过程序来演示其用法。
实际上,大多数重载的算法都有两个版本,其中一个用
==
判断元素是否相等,或用<
比较大小;而另一个版本多出来一个类型参数 Pred 以及函数形参 Pred op,该版本通过表达式op(x, y)
的返回值是 true 还是 false 来判断 x 是否“等于”y 或者“小于”y。例如,在《C++函数对象详解》一节中的“应用实例2”中提到的 sort,再如下面有两个版本的 min_element:
iterate min_element(iterate first, iterate last);
iterate min_element(iterate first, iterate last, Pred op);
<
比较大小,而第二个版本用自定义的比较器 op 来比较大小,op(x, y) 的值为 true,则说明 x 比 y 小。类似 sort 和 min_element 这样有可自定义比较器版本的算法,在后文的表格中列出时,将加注“(可自定义比较器)”。
所有教程
- socket
- Python基础教程
- C#教程
- MySQL函数
- MySQL
- C语言入门
- C语言专题
- C语言编译器
- C语言编程实例
- GCC编译器
- 数据结构
- C语言项目案例
- C++教程
- OpenCV
- Qt教程
- Unity 3D教程
- UE4
- STL
- Redis
- Android教程
- JavaScript
- PHP
- Mybatis
- Spring Cloud
- Maven
- vi命令
- Spring Boot
- Spring MVC
- Hibernate
- Linux
- Linux命令
- Shell脚本
- Java教程
- 设计模式
- Spring
- Servlet
- Struts2
- Java Swing
- JSP教程
- CSS教程
- TensorFlow
- 区块链
- Go语言教程
- Docker
- 编程笔记
- 资源下载
- 关于我们
- 汇编语言
- 大数据
- 云计算
- VIP视频