Bootstrap

学习笔记-lambda(c++ 匿名函数)

觉得自己一直在拿c写c++,自己除了输入和输出使用c++中的cout和cin之外,和C并无什么区别 ,为自己感觉到羞愧

一.为什么需要lambda表达式? 什么是lambda表达式?

  • 标准库为算法提供了额外的版本,如果我们需要以sort让它从小到大进行排列,我们则需要重新加载sort函数,第三个参数为一元谓词,个人感觉和py中的一元谓词,没有太大的不同。

  • 谓词是一个可以调用的表达式,返回结果式一个能够用作条件的值。而我们需要一个可以向算法传递任何类别的可以调用的对象,对于一个对象或者表达式,如果可以使用调用运算符,称它为可以调用的

  • lambda表达式表示一个可以调用的代码单元,我们可以将其理解为一个没有命名的内联函数

    [捕获列表] (参数列表) -> 返回值 { 函数体}

  • 我们可以忽视参数列表和返回类型,但是必须包含捕获列表和函数题

二.我们如何使用lambda表达式

方式 作用
[ ] 不能使用所在函数的变量
[names] names 表示所在函数的变量名称
[&] 引用捕获列表中的变量
[=] 采用值捕获列表中的变量
[&,identifier_list] 表示之前的列表是引用,后面是
;