[c++] lambda递归

/ 5评论 / 269阅读 / 0点赞

lambda表达式

int main() {
    // 声明
    auto fun = []() {
        cout << 123 << endl;
    };
    // 调用
    fun();
    return 0;
}

递归

int hello(int value) {
    if(value < 0) {
        return 0;
    }
    cout << value << endl;
    hello(value - 1);
}

lambda递归

int main() {
    auto fun = [&fun](int value) {
        if(value < 0) { 
             return;
        }
        cout << value << endl;
        // 这里是不行的!!!
        fun(value - 1);
    };
    fun(10);
    return 0;
}

#include <iostream>
#include <functional>
using namespace std;

int main() {
    int i = 10;
    std::function<void()> myfun;
    myfun = [&myfun, &i]() {
        if (i < 0) {
            return;
        }
        cout << i << endl;
        --i;
        myfun();
    };
    myfun();
    return 0;
}
  1. uPVC pipe supplier说道:

    عندما يتعلق الأمر بأنابيب uPVC ، فإن مصنع إيليت بايب Elite Pipe يضع معايير عالية من خلال منتجاته المصممة بدقة والتي توفر حلول سباكة وري موثوقة وخالية من التسرب.

  2. 200 tl bonus说道:

    çok başarılı ve kaliteli bir makale olmuş güzellik sırlarım olarak teşekkür ederiz.

  3. s1gara说道:

    iqos sigara satın almak için hemen tıklayın

  4. furniture说道:

    furniture in online store nigeria

发表回复

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