Lambda 表达式与C++并发编程
2023-12-17 05:32:53
Lambda 表达式(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。
// lambda expression [] {};?
_____________________________________________________________________________?
int main()
{
?? ?[] {}; ?//最简单的Lambda 表达式
?? ?return ?0;
}
____________________________________________________________________________
?
#include<iostream>
#include<thread>
using namespace std;
void functionParameters( int (*cmp)(int,int))
{
?? ?cmp(10, 23);
}
?
int main()
{
?? ?
?? ?functionParameters([](int a, int b) {
?? ??? ?cout << "在这里比较大小!\n";
?? ??? ?return 0;?? ??? ?
?? ??? ?});
?? ??
?? ?std::thread myThread([]() {
?? ??? ?cout << "执行线程代码!\n";
?? ??? ?});
?? ?myThread.join();
}
运行结果:
class background_task
{
public:
inline void operator()()const
{
do_something();
do_something_else();
}
inline void do_something()const
{
cout << "1\n";
}
inline void do_something_else()const
{
cout << "2\n";
}
};
int main()
{
background_task f;
std::thread myThread(f);
myThread.join();
}
重载的圆括号操作符,即成函数void operator()(),其中第一个圆括号用于表明函数名,第二个圆括号则用于接收参数。
?
运行结果:
文章来源:https://blog.csdn.net/weixin_42944928/article/details/135040027
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!