ToB企服应用市场:ToB评测及商务社交产业平台

标题: C++ Lambda 表达式递归写法 [打印本页]

作者: 立山    时间: 2022-8-21 12:41
标题: C++ Lambda 表达式递归写法
今天看到一篇博客介绍使用 Lambda 表达式递归计算 n!。使用了 C++14 的 generic lambda,给 Lambda 表达式加了一个模板参数,在函数调用的时候将 Lambda 表达式作为参数传递给下一层函数。这种方法每次调用函数的时候都要比常规的函数多传一个参数。我想起两年前也用 Lambda 表达式写过递归,利用了引用捕获和 std::function。以 n! 为例,代码为:
[code]#include #include int main(){    std::function f = [&f](int n) {        if (n == 0 || n == 1) {            return 1;        }        return n * f(n - 1);    }    std::cout




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4