关于c++11:lambda表达式
C++ 中的 Lambda 表达式是一种简洁的语法结构,容许在代码中间接定义和应用匿名函数。Lambda 表达式加强了代码的灵活性和可读性,特地是在解决算法、函数对象、事件处理、回调函数等场景下尤为有用。其个别格局如下: [capture_list](parameter_list) -> return_type { function_body }各局部具体阐明: 捕捉列表(Capture List): [] 是捕捉列表开始的标记,能够为空或者蕴含以下几种捕捉形式: = (值捕捉):捕捉内部作用域中的变量正本,对这些变量的批改不会影响原变量。 int x = 10;auto l = [=]() { return x * 2; }; // 捕捉x的值,即便之后x扭转,l仍返回20& (援用捕捉):捕捉内部作用域中变量的援用,对这些变量的批改会影响原变量。 int y = 20;auto m = [&y]() { ++y; return y; }; // 捕捉y的援用,调用m会减少y的值this 关键字:捕捉以后对象的指针,用于在成员函数外部拜访类的成员。不指定任何符号时,默认状况下是非动态局部变量的援用捕捉,同时也会捕捉所有通过值捕捉的内部变量。复合捕捉也是可能的,例如 [=,&z] 意味着除了 z 通过援用捕捉外,其余变量都通过值捕捉。 参数列表(Parameter List): 这部分和惯例函数参数列表相似,用于定义Lambda承受的输出参数。 auto add = [](int a, int b) { return a + b; };返回类型(Return Type): ...