什么是C ++ 11中的Lambda表达式?
C++STL包括有用的通用函数,例如std::for_each。不幸的是,它们使用起来也很麻烦,特别是如果您想应用的函子是特定功能所独有的。因此,您将创建的此函数将在该命名空间中被使用。解决方案是使用匿名函数。
C++在C++11中引入了lambda表达式,以允许创建匿名函数。
示例
#include<iostream>
#include<vector>
#include <algorithm> // for_each
using namespace std;
int main() {
vector<int> myvector;
myvector.push_back(1);
myvector.push_back(2);
myvector.push_back(3);
for_each(myvector.begin(), myvector.end(), [](int x) {
cout << x*x << endl;
});
}输出
这将给出输出-
1 4 9
(intx)用于定义将调用lambda表达式的参数。[]用于将变量从本地范围传递到lambda的内部范围,这称为捕获变量。这些表达式如果简单,则可以自动推导它们的类型。您还可以使用以下语法显式提供类型信息-
语法
[](int x) -> double {
return x/2.0;
}探讨C++详细头lambda表达式在这个StackOverflow的话题-https://stackoverflow.com/questions/7627098/what-is-a-lambda-expression-in-c11
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短