c++第五版练习10.21
练习10.21:编写一个lambda ,捕获一个局部int变量,并递减变量值,直至它变为0,。一旦变量变为0,再调用lambda应该不再递减变量,lambda应该返回个bool值,指出捕获的变量是否为0。
分析:1.lambda实现捕获局部int变量递减 ,说明被捕获的变量值可变,得到mutable;
2.lambda的返回值为bool值,即true or false;
3.返回条件是 判断 捕获的变量值是否为0;
#include<iostream> #include<algorithm> using namespace std; void MyLambda(int a) { auto f = [&a]()mutable->bool {--a; if (a == 0)return false; else return true; }; cout << f() << endl; //打印结果 } int main() { int a=6; MyLambda(a); return 0; }