谓词概念解释:谓词是一个可调用的表达式(可能是一个函数),其返回结果是一个能用作条件的值。
- 一元谓词表明这个谓词只接受一个参数(函数只有一个参数)
- 二元谓词表明这个谓词只接受两个参数(函数只有两个参数)
算法谓词, 即标准库算法传递的参数, 可以指定算法的操作, 如std::sort, 默认是从小到大, 通过谓词可以修改从大到小. 常见的五种谓词: 函数,函数指针,lambda表达式,函数对象,库定义的函数对象.
算法对谓词的参数数量有着严格的限制,像sort算法只接受一个二元谓词。当我们要给谓词的参数过多的时候,就需要用到lambda了。
lambda的形式
[capture list](parameter list) -> return type {function body} //尾置返回类型
auto f = [] {return 1;}; //忽略了参数和返回类型。