- generic algorithms的解释:,具体而言
iterator
使得算法与容器类型无关:,但算法的实现成功与否有时依赖于(element type)元素类型: - 通用算法的实现依赖于
iterator
,具体而言algorithm
–iterator
–container
:,即 - 通用算法中一些统一的模式:
cbegin
和cend
多用于只读的算法类型:- 涉及写入到容器的一些算法假设写入是安全的:,可以使用
insert iterator
来保证安全: - 对容器元素进行reorder的算法有:
- 涉及元素间比较的算法可以自定义比较函数:
predicate
就是一个可以被调用同时返回值作为条件的表达式:lambda
:A lambda expression represents a callable unit of code.,如果未指定返回类型时:- lambda表达式的形参禁止
default arguments
: lambda
的主要作用是魔改predicate
:,它的function body可以直接使用静态变量和其所在定义函数外的变量:- class和lambda:
- lambda中捕获的变量与参数列表的变量不同:,前者像在做初始化,后者像在赋值。此外捕获的变量也可以是引用传递:
- 保持lambda简洁:
mutable lambdas的理解是
:- 代替lambda表达式的bind函数(
function adaptor
):,bind的实例: - 神秘的
ref
: - 不再多言,很优雅的
iterator
头文件: - 继
container adaptor
,function adaptor
,新的iterator adaptor
:,还有花里胡哨的iostream Iterators
:,直接开装:,以及reverse Iterators:。 - 迭代器分类:,简单而言:
- 该死的算法参数模式:
- 通用版本和容器定制版本的算法使用: