💻算法(Algorithm)

对于STL中各种类型的算法的详细介绍

算法概述

算法主要由头文件<algorithm><functional><numeric>组成

  • <algorithm> 是所有STL头文件中最大的一个,其中常用的功能涉及到比较、交换、查找、遍历、复制、修改、反转、排序、合并等

  • <numeric> 体积很小,只包括在几个序列容器上进行简单运算的模版函数

  • <functional> 定义了一些模版类,用以声明函数对象

自定义的类如果想要直接使用算法库,则需补全默认构造函数、拷贝构造函数、析构函数、赋值操作符、小于操作符、等于操作符。

常用遍历算法

for_each

transform

注意:目标容器一定要提前分配好内存。

常用查找算法

find

find_if

利用find_if实现自定义类的find操作的时候,之前的函数适配器可能会派上用场。

adjacent_find

count

count_if

常用排序算法

merge

sort

random_shuffle

如果想要每次打乱不同,需要自己设置随机数种子:

reverse

常用拷贝和替换算法

copy

使用copy算法快速打印容器:

其实第一种方法已经够用了,不过为了提升一下逼格,不妨也了解一下第二种。

replace

replace_if

swap

常用算数生成算法

accumulate

fill

常用集合算法

set_intersection

set_union

set_difference

最后更新于

这有帮助吗?