1. STL常见非变异算法
2. STL常见变异算法
2.1 Copy - 对数据的各类拷贝
2.2 Swap - 对数据内容的交换
2.3 Transform - 对两组数据之间进行运算
2.4 Replace - 两组数据之间的内容进行替换
2.5 Fill和Generate - 初始化时进行填充
2.6 Remove - 根据判别条件去掉某些数据
2.7 排序算法
2.7.1 sort
- 特殊数据需要重新定义运算符
operator<
2.7.2 partial_sort
- 对部分数据排序
2.7.3 binary_search
- 先sort,再使二叉树搜索
2.7.4 merge
- 先sort,再将两组数据merge
2.7.5 include
- 先sort,再查找两组数据中元素包含的情况(重复数据的次数也考虑在内)
2.7.6
2.8 基于heap的算法
2.8.1 make_heap
- 构造一个二叉树,父节点>子节点
2.8.2 push_heap
- 添加一个新的节点,并根据需要重构二叉树
2.8.3 pop_heap
- 剔除特定节点,并根据需要重构二叉树。
2.8.4 sort_heap
- 从小到大得到二叉树中的节点数值
2.9 泛型数值算法
include <numeric>
2.9.1 accumulate
2.9.2 inner_product
2.9.3 paritial_sum
2.9.4 adjacent_difference
3. Traits的使用
By convention, traits are always implemented as structs. Another convention is that the structs used to implement traits are knows as trait classes.