什么是算法
标准库中,算法都是独立于特定类型和容器的,这些算法都是通用的因此被称为泛型(generic),算法永远不会改变底层容器的大小。算法可能改变容器中保存的元素的值,也可能在容器中移动元素,但是永远不会直接添加或删除元素,算法对迭代器进行操作。
算法通常包括:
- 只读算法
- 写容器元素的算法
- 重拍容器元素的算法
定制操作
除了一些基本的操作,我们还可以定义操作。
- 向算法传递函数
谓词的概念,算法调用函数参数的个数。
lambda表达式,使用lambda表达式可以摆脱谓词的限制。lambda函数的捕获方式包括:按值、按引用和隐式捕获。 - 参数绑定
对于那种只在一两个地方使用的简单操作,lambda表达式是最有用的。如果我们需要在很多地方使用相同的操作,通常应该定义一个函数,而不是多次编写相同的lambda表达式。类似地,如果一个操作需要很多语句才能完成,通常使用函数更好。(注意lambda是“表达式”而不是函数)
由于一些算法只接受固定谓词的函数,但是我们又想用函数这是我们可以使用标准库bind函数。- bind函数
bind函数可以看作一个通用的函数适配器。
基本上是一眼懂。
- bind函数