VC2010開發學習(Lambda表達式)

許多編程語言都支持匿名函數的概念,所謂匿名函數指的是隻有函數體而沒有函數名的函數,匿名函數廣泛運用於那些只被使用一次且函數體較小的情況。Lambda表達式是一種與匿名函數密切關聯的編程技術,實際上一個Lambda表達式隱式定義了一個函數類並構造了一個該函數類的函數對象。可以將Lambda表達式看作一個可以維持狀態並且可以訪問所在封閉作用域的變量的匿名函數。在作用上,Lambda表達式類似於函數指針和函數對象,Lambda表達式很好的兼顧了函數指針和函數對象的優點,卻沒有它們的缺點。

下面是簡單的例子:

int main()
{
    vector<int>v;
    for(int i = 0; i<10; ++i)
    {
	v.push(i);
    }
    for_each(v.begin(),v.end(),[](int n))
    {
	cout<<n<<endl;
    }
    return 0;
}

for_each(v.begin(),v.end(),[](int n))

的後半段包含Lambda表達式,其中[]代表Lambda表達式引入符,這個符號告訴編譯器一個Lambda表達式的開始。後面(int n)爲Lambda參數聲明,{}是整個函數體。

Lambda表達式默認的返回值類型爲void。


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