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

運行結果:

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