C ++中的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

(int x)用于定义将调用lambda表达式的参数。[]用于将变量从本地范围传递到lambda的内部范围,这称为捕获变量。这些表达式如果简单,则可以自动推导它们的类型。您还可以使用以下语法显式提供类型信息

[](int x) -> double {

   return x/2.0;

}

以上是 C ++中的Lambda表达式 的全部内容, 来源链接: utcz.com/z/335000.html

回到顶部