C++ lambda表达式的用法,简单例子
时间: 2023-08-04 11:39:07 浏览: 131
C++中的lambda表达式是一种无名函数,它可以在需要函数对象(function object)的任何地方使用。lambda表达式可以包含多个语句,并且可以捕获外部变量。以下是一个lambda表达式的简单例子:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
int main()
{
std::vector<int> v{0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
// 使用lambda表达式来打印vector中的每个元素
std::for_each(v.begin(), v.end(), [](int i) { std::cout << i << " "; });
// 使用lambda表达式对vector中的元素进行平方操作
std::transform(v.begin(), v.end(), v.begin(), [](int i) { return i * i; });
// 再次使用lambda表达式来打印vector中的每个元素
std::for_each(v.begin(), v.end(), [](int i) { std::cout << i << " "; });
return 0;
}
```
在上面的例子中,我们使用了两个lambda表达式。第一个lambda表达式用于打印vector中的每个元素,第二个lambda表达式用于对vector中的元素进行平方操作。在第二个lambda表达式中,我们还可以看到它捕获了外部变量i,这个变量在lambda表达式中被用作平方操作的输入参数。
总的来说,lambda表达式提供了一种方便的方式来定义函数对象,并且可以在需要函数对象的任何地方使用,例如STL算法中的函数对象参数。
阅读全文