Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;自动执行功能?_C++_C++11_C++14_C++17 - Fatal编程技术网

C++ C++;自动执行功能?

C++ C++;自动执行功能?,c++,c++11,c++14,c++17,C++,C++11,C++14,C++17,在解决Leetcode问题时,我遇到了一个问题解决方案(通常我们只能访问solution类,而不能访问main),我在类声明和定义之后找到了这条语句。我熟悉一些内部内容,比如cin.tiesync\u with_stdio等。但是的自动加速功能是什么。它是一个自动执行的函数。我们将非常感谢您的帮助 auto speedup=[](){ std::ios::sync_with_stdio(false); cin.tie(nullptr); co

在解决Leetcode问题时,我遇到了一个问题解决方案(通常我们只能访问solution类,而不能访问main),我在类声明和定义之后找到了这条语句。我熟悉一些内部内容,比如
cin.tie
sync\u with_stdio
等。但是
自动加速功能是什么。它是一个自动执行的函数。我们将非常感谢您的帮助

   auto speedup=[](){
        std::ios::sync_with_stdio(false);
        cin.tie(nullptr);
        cout.tie(nullptr);
        return nullptr;
    }();

提前感谢。

从[]到}是一个lambda表达式,也称为匿名函数。它是在C++11中引入的。它的计算结果是指向一个函数的指针,该函数不带任何参数,并执行给定函数体中的代码,然后返回nullptr


该语句调用此lambda函数,并将其返回值放入加速中。由于lambda表达式没有给出显式的返回类型,因此我非常确定返回类型以及加速变量的类型是nullptr\u t。

它是一个在声明后立即调用的类型(因此是最终的
()
)。但是为什么有人会做这样的事情,而不是仅仅在父范围内执行这些行呢?我不知道。@Yksisarvinen-这是一个试图证明他们比其他开发人员更聪明的人,并且失败了。谢谢你的帮助。因为web Ide不允许访问
main()
。因为它在声明之后立即被调用,所以它是在任何main行执行之前被执行的。@Yksisarvinen我认为它是在静态初始化时,在主程序执行之前做一些处理。您不能将任何非声明的语句放在全局范围内,因此这实际上是一种优雅的方式,可以在不需要外部调用的情况下执行一些复杂的初始化。