TypechoJoeTheme

至尊技术网

登录
用户名
密码

C++中lambda表达式作为函数参数的用法

2025-12-07
/
0 评论
/
33 阅读
/
正在检测是否收录...
12/07

在 C++ 中,lambda 表达式可以作为函数的参数传递,其语法形式为:

cpp return_type lambda (arg1, arg2, ...) { // 函数体 }

其中,lambda 表达式可以返回任何表达式,也可以作为函数的参数传递。此外,lambda 表达式还可以作为函数的复合函数的一部分。

示例 1:将 lambda 表达式作为函数参数传递

假设我们有一个函数,其参数是一个 lambda 表达式。例如:

cpp
int count (const std::vector& nums) {
return nums.back();
}

int main() {
int result = count({1, 2, 3, 4, 5});
std::cout << "结果为:" << result << std::endl;
return 0;
}

在这个例子中,count 函数的参数是一个 lambda 表达式,该表达式获取一个向量的最后一个元素。

示例 2:将 lambda 表达式作为函数的复合函数

假设我们有一个函数,其返回值是一个 lambda 表达式。例如:

cpp
int add_two(int a, int b) {
return a + b;
}

int addtwoandlambda(int a, int b) { return addtwo(a, b) + 2;
}

int main() {
int result = addtwoand_lambda(1, 3);
std::cout << "结果为:" << result << std::endl;
return 0;
}

在这个例子中,addtwoandlambda 函数返回的是 addtwo 的结果加上 2,而 addtwo 的结果是一个整数,因此 addtwoandlambda 的返回值也是一个整数,但可以通过 lambda 表达式实现。

示例 3:将 lambda 表达式作为函数的返回值

假设我们有一个函数,其返回值是一个 lambda 表达式。例如:

cpp
int add_two(int a, int b) {
return a + b;
}

int addtwoandlambda(int a, int b) { return addtwo(a, b);
}

int main() {
int result = addtwoand_lambda(1, 3);
std::cout << "结果为:" << result << std::endl;
return 0;
}

在这个例子中,addtwoandlambda 函数返回的是 addtwo(a, b) 的结果,而 addtwo 的结果是一个整数,因此 addtwoandlambda 的返回值也是一个整数,但可以通过 lambda 表达式实现。

示例 4:将 lambda 表达式作为函数的函数参数传递

假设我们有一个函数,其参数是一个 lambda 表达式。例如:

cpp
int count (const std::vector& nums) {
int count = 0;
for (int num : nums) {
count++;
}
return count;
}

int main() {
int result = count({1, 2, 3, 4, 5});
std::cout << "结果为:" << result << std::endl;
return 0;
}

在这个例子中,count 函数的参数是一个 lambda 表达式,该表达式遍历了一个向量,并返回该向量的大小。

示例 5:将 lambda 表达式作为函数的复合函数的一部分

假设我们有一个函数,其返回值是一个 lambda 表达式。例如:

cpp
int add_two(int a, int b) {
return a + b;
}

int addtwoandlambda(int a, int b) { int sum = addtwo(a, b);
return sum + 2;
}

int main() {
int result = addtwoand_lambda(1, 3);
std::cout << "结果为:" << result << std::endl;
return 0;
}

在这个例子中,addtwoandlambda 函数返回的是 sum + 2,而 sum 是 addtwo(a, b) 的结果,因此 addtwoand_lambda 的返回值可以通过 lambda 表达式实现。

总结:

函数参数传递C++ lambda 表达式复合函数
朗读
赞(0)
版权属于:

至尊技术网

本文链接:

https://www.zzwws.cn/archives/40618/(转载时请注明本文出处及文章链接)

评论 (0)