10.21 编写一个lambda,捕获一个局部int变量,并递减变量值,直至它变为0.一旦变量变为0,再调用lambda应该不再递减变量。lambda应该返回一个bool值,指出捕获的变量是否为0.
#include<iostream> #include<algorithm> using namespace std; int main() { int n=5; auto f=[n]() mutable ->bool {if(n>0) return --n;else return n;}; int i=8; while(i) { cout<<f()<<" "; --i; } cout<<endl; return 0; }
运行结果如下:
1 1 1 1 0 0 0 0
lambda显式声明返回值
时间: 2024-11-07 01:50:47