<tfoot id='ytlin'></tfoot>

<legend id='ytlin'><style id='ytlin'><dir id='ytlin'><q id='ytlin'></q></dir></style></legend>
      <bdo id='ytlin'></bdo><ul id='ytlin'></ul>

      <small id='ytlin'></small><noframes id='ytlin'>

    1. <i id='ytlin'><tr id='ytlin'><dt id='ytlin'><q id='ytlin'><span id='ytlin'><b id='ytlin'><form id='ytlin'><ins id='ytlin'></ins><ul id='ytlin'></ul><sub id='ytlin'></sub></form><legend id='ytlin'></legend><bdo id='ytlin'><pre id='ytlin'><center id='ytlin'></center></pre></bdo></b><th id='ytlin'></th></span></q></dt></tr></i><div id='ytlin'><tfoot id='ytlin'></tfoot><dl id='ytlin'><fieldset id='ytlin'></fieldset></dl></div>

      1. lambda 函数可以递归吗?

        时间:2023-08-03
          <i id='dKDne'><tr id='dKDne'><dt id='dKDne'><q id='dKDne'><span id='dKDne'><b id='dKDne'><form id='dKDne'><ins id='dKDne'></ins><ul id='dKDne'></ul><sub id='dKDne'></sub></form><legend id='dKDne'></legend><bdo id='dKDne'><pre id='dKDne'><center id='dKDne'></center></pre></bdo></b><th id='dKDne'></th></span></q></dt></tr></i><div id='dKDne'><tfoot id='dKDne'></tfoot><dl id='dKDne'><fieldset id='dKDne'></fieldset></dl></div>

            <tbody id='dKDne'></tbody>

            <legend id='dKDne'><style id='dKDne'><dir id='dKDne'><q id='dKDne'></q></dir></style></legend>

            <small id='dKDne'></small><noframes id='dKDne'>

          1. <tfoot id='dKDne'></tfoot>
                <bdo id='dKDne'></bdo><ul id='dKDne'></ul>

                1. 本文介绍了lambda 函数可以递归吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  可能的重复:
                  c++0x 中的递归 lambda 函数

                  这是一个普通的旧递归函数:

                  Here is a plain old recursive function:

                  int fak(int n)
                  {
                      return (n <= 1) ? 1 : n * fak(n - 1);
                  }
                  

                  我将如何编写像 lambda 函数这样的递归函数?

                  How would I write such a recursive function as a lambda function?

                  [](int n) { return (n <= 1) ? 1 : n * operator()(n - 1); }
                  // error: operator() not defined
                  
                  [](int n) { return (n <= 1) ? 1 : n * (*this)(n - 1); }
                  // error: this wasn't captured for this lambda function
                  

                  是否有任何表达式表示当前的 lambda,以便它可以递归地调用自己?

                  Is there any expression that denotes the current lambda so it can call itself recursively?

                  推荐答案

                  是的,他们可以.您可以将其存储在变量中并引用该变量(尽管您不能将该变量的类型声明为 auto,但您必须使用 std::function 对象代替).例如:

                  Yes, they can. You can store it in a variable and reference that variable (although you cannot declare the type of that variable as auto, you would have to use an std::function object instead). For instance:

                  std::function<int (int)> factorial = [&] (int i) 
                  { 
                      return (i == 1) ? 1 : i * factorial(i - 1); 
                  };
                  

                  否则,不,您不能从 lambda 的主体内部引用 this 指针.

                  Otherwise, no, you cannot refer the this pointer from inside the body of the lambda.

                  这篇关于lambda 函数可以递归吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:捕获“堆栈溢出"递归 C++ 函数中的异常 下一篇:C++ 阶乘程序中的递归

                  相关文章

                  最新文章

                  <legend id='pDFdB'><style id='pDFdB'><dir id='pDFdB'><q id='pDFdB'></q></dir></style></legend>
                    <i id='pDFdB'><tr id='pDFdB'><dt id='pDFdB'><q id='pDFdB'><span id='pDFdB'><b id='pDFdB'><form id='pDFdB'><ins id='pDFdB'></ins><ul id='pDFdB'></ul><sub id='pDFdB'></sub></form><legend id='pDFdB'></legend><bdo id='pDFdB'><pre id='pDFdB'><center id='pDFdB'></center></pre></bdo></b><th id='pDFdB'></th></span></q></dt></tr></i><div id='pDFdB'><tfoot id='pDFdB'></tfoot><dl id='pDFdB'><fieldset id='pDFdB'></fieldset></dl></div>
                    • <bdo id='pDFdB'></bdo><ul id='pDFdB'></ul>
                    <tfoot id='pDFdB'></tfoot>

                  1. <small id='pDFdB'></small><noframes id='pDFdB'>