C++11 Lambda Function
What is a Lambda Function?
lambda函数是C++中的一种匿名函数,通常用作回调使用,像普通的函数那样,也需要传递参数和返回结果。但区别就是,lambda函数没有名字,因此主要用来创建那些短小的函数。
Need of Lambda functions
假设以下使用std::for_each算法的函数:
1 |
|
在上面的例子中,我们创建了一个单独函数,但使用lambda函数,我们可以避免这种开销。
Rise of Lambda functions
lambda函数是一种匿名函数,它没有任何名称,但您可以传递参数并从中返回结果。如下:
1 | [](int x) { |
- []用来传递外部域的元素;
- (int x)则是传递进来的参数;
利用lambda函数改写:
1 |
|
How to pass outer scope elements inside lambda functions
case 1: 使用[=]
1 | [=](int &x) { |
case 1: 使用[&]
1 | [&](int &x) { |