C++ 的 lambda 为什么还要允许有参数呢,不是可以捕获外部的变量吗,要参数做什么用呢

 我来答
匿名用户
2016-06-12
展开全部
参数不一定是创建lambda的地方就能得到的, 参数的值可以由接收lambda的那个函数来提供, 自己实际用一下就知道参数有什么用了

例如用for遍历数组写成lambda的形式差不多就是array.foreach([](value){ /*在这里得到数组每个元素的值*/ })
又例如用lambda当作event handler, 接收一个鼠标点击的事件的lambda可以是[](x, y){/*在这里得到鼠标的指针坐标*/}
追问
比如
const list::const_iterator result =
find_if(numbers.begin(), numbers.end(),[](int n) { return (n % 2) == 0; });
这里 find_if 函数调用的最后一个参数是一个 lambda,而这个 lambda 的参数“int n”是从哪里来的呢
追答
就是find_if函数给提供的呀, find_if里的循环会把每个元素都丢给n调用这个lambda多次
吃萝卜的小狮子
2020-06-10
知道答主
回答量:1
采纳率:0%
帮助的人:613
展开全部
请问你现在会了吗

能告诉我一下不
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式