Lambda 表达式与C++并发编程

发布时间:2023年12月17日

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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。