lambda表达式用法举例c++
时间: 2024-07-06 10:01:09 浏览: 168
Lambda 表达式是 C++11 引入的一种现代特性,它提供了一种简洁的方式来定义匿名函数,使得我们可以更方便地传递函数对象。Lambda 表达式通常用于函数式编程风格,或者作为 std::function 或者 std::thread 等容器的参数。
Lambda 的基本语法如下:
```cpp
[capture list] (parameters) -> return_type { function body }
```
- `capture list` (可选): 可选的捕获列表,用来指定函数中要使用的外部变量。
- `parameters`: 函数参数列表。
- `-> return_type`: 返回类型,如果省略则默认为 `void`。
- `{ function body }`: 函数体,执行的代码。
例如,一个简单的 Lambda 表达式用于排序,我们可能有一个整数向量,想按值排序:
```cpp
#include <algorithm>
#include <vector>
std::vector<int> numbers = {3, 1, 4, 1, 5, 9};
// 使用 Lambda 表达式排序
std::sort(numbers.begin(), numbers.end(),
[](int a, int b) { return a < b; });
```
在这个例子中,`[](int a, int b) { return a < b; }` 是一个接受两个整数参数并返回 bool 值的 Lambda,表示按照第一个参数小于第二个参数进行排序。
阅读全文