#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<int> v1;
v1.push_back(1);
v1.push_back(-2);
vector<int> v2;
transform(v1.begin(),v1.end(),v1.begin(),[](int i)->int{return i>0?i:-i;});
for each (auto var in v1)
{
cout << var << endl;
}
auto t = [](int i){return ++i;};
int j = t(3);
cout << j << endl;
int k = 10;
auto t1 = [k]()mutable{return ++k;};//如果不写mutable,会出error C3491: “k”: 不能在非可变 lambda 中修改按值捕获
cout << t1() << endl;
}
1
2
4
11
c++的lambda看起来有点怪,可能是因为看过python的lambda,有了先入为主的原因.
从一方面讲,lambda只是对c++98/03中带有operator()的局部仿函数(函数对象)包装的"语法甜点".事实上,在c++11中lambda也被处理为匿名的仿函数.
c++ lambda
最新推荐文章于 2025-08-17 14:20:54 发布