C++中的lambda表达式初探

简介

可调用对象 可调用对象(callable object)是指可以通过()运算符传入参数然后返回运算结果的对象或表达式(此处"对象"是一般含义,不特指类的实例化对象),如果e是一个可调用对象,那么我们可以通过e(args)调用它,其中args是参数列表。在C++中的可调用对象有:函数,函数指针,重载了函数调用运算符的类,lambda表达式

lambda表达式 类似于matlab中的内联函数,语法如下

[capture list] (parameter list) -> return type {function body}

  • capture list 捕获列表中定义局部变量
  • parameter list 形参列表
  • return type 返回类型
  • function body 函数体

形参列表和返回类型是可以忽略的,捕获列表和函数体是必须的。

例子

输入 x x x, y y y,计算 x 2 + y 2 \sqrt{x^2+y^2} x2+y2

#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
int main(){
  auto f=[](const double &x, const double &y)->double{a=2;return sqrt(x*x+y*y); };
  double r=f(3,4);
  cout<<r<<endl;
  return 0;
}

结果输出5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值