在 Ubuntu 上使用 C++ lambda 表达式非常简单,因为 Ubuntu 默认使用的 GCC 编译器支持 C++11 及以上标准,而 lambda 表达式是从 C++11 开始引入的特性。下面是一个简单的例子来展示如何在 Ubuntu 上使用 C++ lambda 表达式。
首先,确保你的系统上安装了 g++ 编译器。如果没有安装,可以通过以下命令安装:
sudo apt update
sudo apt install g++
然后,创建一个名为 lambda_example.cpp 的文件,并输入以下代码:
#include <iostream>
#include <functional>
int main() {
// 定义一个 lambda 表达式,捕获周围作用域的变量 by value
auto add = [](int x, int y) -> int {
return x + y;
};
// 使用 lambda 表达式
int result = add(5, 3);
std::cout << "The result is: " << result << std::endl;
// 捕获周围作用域的变量 by reference
int a = 5;
int b = 10;
auto increment = [&a, &b]() {
++a;
++b;
};
// 调用 lambda 表达式
increment();
std::cout << "a: "<< a << ", b: "<< b << std::endl;
return 0;
}
在这个例子中,我们定义了两个 lambda 表达式。第一个 lambda 表达式 add 接受两个参数并返回它们的和。第二个 lambda 表达式 increment 捕获了两个外部变量的引用,并在调用时递增它们。
要编译这个程序,请在终端中运行以下命令:
g++ -std=c++11 lambda_example.cpp -o lambda_example
这将生成一个名为 lambda_example 的可执行文件。运行这个程序,你将看到以下输出:
The result is: 8
a: 6, b: 11
这就是在 Ubuntu 上使用 C++ lambda 表达式的基本方法。你可以根据需要修改和扩展这个例子,以满足你的需求。