lambda是c++11引入的新特性。
lambda又被稱為匿名函數,是代碼中定義的一個沒有名字的臨時函數,隻有調用的時候才會創建函數對象。
lambda的本質是一個特殊的,匿名的類類型。它是一個帶有operator()的類,即仿函數。
仿函數(functor),就是使一個類的函數使用看上去像一個函數,就是在類中實現operator(),這個類就有瞭類似函數的行為,就是一個仿函數類瞭。
class Addnum{
public:
Addnum(int x): num_(x){};
int addnum(int x) const {
return x+num_;
}
int operator()(int x) const {
return x+num_;
}
private:
int num_;
};
int main(){
// functor
auto addnum = Addnum(10);
auto x = addnum(5);
std::cout<<"x: "<<x_2<<std::endl;
return 0;
}