C++ Primer 第5版--练习10.21

来源:互联网 发布:sublime json高亮插件 编辑:程序博客网 时间:2024/05/16 15:20

练习 10.21:编写一个 lambda,捕获一个局部 int 变量,并递减变量值,直至它变为 0。一旦变量变为 0,再调用 lambda 应该不再递减变量。lambda 应该返回一个 bool 值,指出捕获的变量是否为 0。

#include <iostream>using std::cout;using std::cin;using std::endl;int main(){    int x;    cout << "请输入局部int变量的值: ";    cin >> x;    auto decrease_to_zero = [&x] () -> bool    {        if (x == 0)        {            cout << "变量值已是0,不再递减变量值。" << endl;            return true;        }        else        {            cout << "变量值是:" << x << ",将递减变量值,直到它变为0。" << endl;            while (x)                --x;            return true;        }    };    cout << "首次调用lamda,";    decrease_to_zero();    cout << "再次调用lamda,";    decrease_to_zero();    return 0;}


0 0
原创粉丝点击