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

Lambda 表达式(lambda expression)是一个匿名函数,Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。
// lambda expression [] {}; 
_____________________________________________________________________________ 

int main()
{
    [] {};  //最简单的Lambda 表达式
    return  0;
}
____________________________________________________________________________

Lambda 表达式与C++并发编程_第1张图片

 

#include
#include
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();
}


Lambda 表达式与C++并发编程_第2张图片

运行结果:Lambda 表达式与C++并发编程_第3张图片

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();
}

Lambda 表达式与C++并发编程_第4张图片

重载的圆括号操作符,即成函数void operator()(),其中第一个圆括号用于表明函数名,第二个圆括号则用于接收参数。
 

运行结果:Lambda 表达式与C++并发编程_第5张图片

你可能感兴趣的:(c++,开发语言)