本文最后更新于39 天前,其中的信息可能已经过时,如有错误请发送邮件到qiaoaoxie19870211@163.com
auto dfs = [&](this auto && dfs, int x, int y) -> int {};
上式是一个匿名的Lambda表达式。如果就最简单地对Lambda表达式进行了解的话,那么需要注意的点有以下:
- 表达式的前面一般使用auto,该关键字用于自动推导lambda表达式的类型
- []内的内容为捕获方式,常用的为 = 和 & 。其中&是隐式引用捕获,浅拷贝。=是隐式值捕获,深拷贝。
- auto&& dfs是该匿名函数中的特殊参数,代表通用引用。当使用auto进行类型推导时,C++不允许一个变量使用自身进行初始化。使用该参数之后才能够正常地调用自身。
- ->用于指定Lambda表达式的返回类型
- 记得最后的时候要加上分号来结束这个函数的声明!!!
Lambda表达式十分简洁好用,但是在维护和扩展的时候可能会难以理解。因此,Lambda表达式用在算法比赛上或者是配套注释进行使用~