匿名函数 用C++代码详细介绍一下
时间: 2023-11-07 18:04:43 浏览: 92
在C++中,匿名函数被称为lambda表达式。使用lambda表达式可以方便地创建临时函数对象,从而避免定义显式的函数或函数对象。
下面是一个使用lambda表达式的示例代码:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
int main()
{
std::vector<int> nums {1, 2, 3, 4, 5};
// 使用 lambda 表达式作为谓词函数
auto even = [](int n) { return n % 2 == 0; };
// 使用 std::remove_if() 函数删除偶数元素
auto it = std::remove_if(nums.begin(), nums.end(), even);
nums.erase(it, nums.end());
// 输出剩余的奇数元素
for (int n : nums)
{
std::cout << n << " ";
}
std::cout << std::endl;
return 0;
}
```
在这个例子中,我们使用lambda表达式作为std::remove_if()函数的谓词函数,用于删除整数向量中的偶数元素。lambda表达式的定义方式是使用方括号[]括起来的参数列表,紧接着是大括号{}括起来的函数体。在这个例子中,我们使用了一个自变量n,并返回n % 2 == 0的布尔值作为函数结果。这个lambda表达式被赋值给一个auto类型的变量even,可以像函数一样调用。
在C++11中引入的lambda表达式为C++中的函数式编程提供了更多的灵活性和便利性。
阅读全文