C++ 之 Lambda表达式

一、介绍

本部分参考(https://blog.csdn.net/lixiaogang_theanswer/article/details/80905445)

lambda 表达式是一种匿名函数,即没有函数名的函数;该匿名函数是由数学中的λ演算而来的。通常情况下,lambda函数的语法定义为:

[capture] (parameters) mutable ->return-type {statement}

此处mutable的含义可参考https://www.jianshu.com/p/94d9d3cc55c2

在C++11中,lambda函数是inline(内联函数)

#include <iostream>

using namespace std;

auto sum = [](int a, int b)->int
{
	return a + b;
};

int main()
{
	int m1 = 10;
	int ret = [&m1]()->int {m1 = 100 + m1; return 20; }();
	cout << "ret=" << ret << ";m1=" << m1 << endl;
	int m2 = 30;
	[=]() mutable {m2 = m2 + 10; }();
	cout << "m2=" << m2 << endl;

	cout << "sum(5+10)=" << sum(5, 10)<< endl;

	system("pause");
	return 0;
}

运行结果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章