函數(shù)指針和lambda
無參數(shù)的函數(shù)HelloWorld(),可以直接像這樣調(diào)用
像這樣可以獲取這個函數(shù)的指針

它等同于

在有參數(shù)的情況下,也是一樣的

現(xiàn)在假設(shè)我們要打印一個vector<int>中的所有數(shù)字,我們可以這樣做
也可以將PrintValue函數(shù)作為參數(shù),傳遞給ForEach函數(shù)
而lambda表達(dá)式讓我們可以不像這樣聲明PrintValue函數(shù),而是把我們想要做的事情,當(dāng)作一個一次性的功能一樣,直接寫在代碼中
所以,什么樣的情景下會用到lambda表達(dá)式,比如這里的values,我想對里面的每個數(shù)字做一些操作時,我通過ForEach,把values傳進(jìn)去,但暫時又沒想好要做什么操作,可能只想簡單的打印出來,就像這里的例子一樣,也可能想做點(diǎn)別的操作,但如果每次想做操作的時候,都去聲明一個函數(shù),去定義它,再到ForEach函數(shù)里修改對應(yīng)的函數(shù),這會相當(dāng)麻煩,所以lambda在這樣的情景下就顯得特別直觀。
標(biāo)簽: