Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1299893
  • 博文数量: 167
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2187
  • 用 户 组: 普通用户
  • 注册时间: 2016-12-21 22:26
个人简介

90后空巢老码农

文章分类

全部博文(167)

文章存档

2021年(9)

2020年(56)

2019年(54)

2018年(47)

2017年(1)

我的朋友

分类: C/C++

2021-01-21 10:01:32

c++11终于新增了lambda表达式这个东西,简单介绍下,其语法如下:

点击(此处)折叠或打开

  1. [captures](params)->return_type {// function body};

自己在看的时候,就是关于捕获这块有点蒙圈,单独拿出来记录下:
捕获分为两种:1. 值捕获;2. 引用捕获。跟函数参数传递过程中的值传递和引用传递非常相像,示例代码如下:

点击(此处)折叠或打开

  1. int main(int argc, char** argv) {
  2.     int i=1234,j=5678,k=9;
  3.     auto f=[=,&j,&k]{return i+j+k;};
  4.     i=1;j=2;k=3;
  5.     std::cout<<f()<<std::endl;
  6.     return 0;
  7. }
输出结果是:1239,说明值传递是在值声明的那一刻搞定的,而引用传递每次传递的都是最新的值
阅读(158) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~