C++ lambda 匿名函数
1、基本介绍C++11 引入的 lambda 匿名函数(Lambda Expression)是一种轻量级的函数对象,可在需要函数的地方直接定义,无需单独声明,极大简化了代码编写(尤其是回调函数、算法谓词等场景)。
基本语法:
(parameter-list) mutable noexcept(optional) -> return-type { function-body }组成部分说明capture-list捕获列表:指定如何捕获 lambda 所在作用域的局部变量(值捕获、引用捕获等),不可省略。parameter-list参数列表:与普通函数的参数列表一致(可省略,若无形参)。mutable可选关键字:允许在 lambda 内部修改值捕获的变量(默认值捕获变量为 const)。noexcept可选:指定 lambda 是否可能抛出异常(C++11 起)。-> return-type返回类型:可选,若函数体仅有一条 return 语句,编译器可自动推导返回类型。function-body函数体:lambda 的执行逻辑。简单的例子
#include #include #include int main() { std::vector v = {3, 1, 4, 1, 5, 9, 2, 6}; // 使用 Lambda 表达式作为 std::sort 的比较准则 // 按降序排序 std::sort(v.begin(), v.end(), [](int a, int b) { return a > b; } // Lambda 表达式 ); for (int i : v) { std::cout 前排留名,哈哈哈 过来提前占个楼 不错,里面软件多更新就更好了 yyds。多谢分享 用心讨论,共获提升! 感谢分享 这个有用。 过来提前占个楼 很好很强大我过来先占个楼 待编辑 用心讨论,共获提升! 谢谢分享,试用一下 东西不错很实用谢谢分享 过来提前占个楼 谢谢分享,试用一下 收藏一下 不知道什么时候能用到 感谢发布原创作品,程序园因你更精彩 谢谢分享,试用一下 感谢发布原创作品,程序园因你更精彩 谢谢楼主提供!