2016-05-13 101 views
3

當我經歷的lambda函數,我看到人們比較函子&拉姆達我遇到了一個聲明
用戶不必雜波他們與小函子代碼在一些訪問範圍。lambda函數VS仿函數

我的疑問是

  1. 的是,在一些訪問範圍
  2. 有小函子的問題是不是好主意,有一個單一的功能(實際上是仿函數)&重用在多個文件在我們的項目中。

謝謝。

+0

函數和函子是一個太不同的東西:函子是一個結構/類,行爲像一個函數。而lambda通常是一次性功能,只能在一兩個地方使用。 – m0nhawk

+0

「某些可訪問的範圍」是什麼意思? – WhiZTiM

+0

@WhiZTiM我把它從這裏(http://stackoverflow.com/questions/7627098/what-is-a-lambda-expression-in-c11),我想他意味着把它放在一些頭文件中並使用它包含該頭文件的不同文件。 – NDestiny

回答

3
  1. 如果你不得不每次只使用一次,那就沒有必要了。 Lambdas通常使代碼更具可讀性,函數正好在需要的地方定義。
  2. 這並非總是如此,函數可能只在一個地方被調用。當然,如果你在不同的地方需要它,一個仿函數可能更合適。
+0

有意義,thnx。 – NDestiny