您的位置 首页 kreess

lambda詳解

lambda是c++11引入的新特性。lambda又被稱為匿名函數,是代碼中定義的一個沒有名字的臨時函數,隻有調用的時候才會創建函數對象。lambda的本質是一個特殊的,匿

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

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

返回顶部