在LINQ中,如下的级联处理是常见的:
var result = src.select(x => f1(x)) // 用 y = f1(x), z = f2(y) 转换 x序列
.where(y => c1(y)) // 筛选条件: c1(y) 与 c2(z)
.select(y => f2(y))
.where(z => c2(z));
在C++ STL中,没有相同的级联机制,但可以用函数嵌套(bind)的方法来实现相同操作:
// 将[p0, p1)中的数据转换、筛选后放到[p,)中。
transform_if(p0, p1, p,