leetcode 提交中的未知 c++ 语法
unknown c++ syntax in leetcode submissions
我在 leetcode.com 的提交中看到过这样的代码,但我不明白。我对语法的不熟悉使我很难找到解释。
static const int _ = []() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
return 0;
}()
我了解到 I/O 调用是为了提高执行速度。我没有掌握的是语法——这是函数定义还是 lambda 表达式?这段代码是如何执行的?
这是 lambda 语法,所以他们正在做的是创建一个 c++ lambda,它执行上面的代码并对其求值,然后将结果存储为 static const int
。更多信息在这里:https://en.cppreference.com/w/cpp/language/lambda
我最好的猜测是在调用 main
之前首先评估此函数,因为 static const
值在启动程序之前被初始化。这似乎是 stdio 状态初始化器的 hacky 版本。
我在 leetcode.com 的提交中看到过这样的代码,但我不明白。我对语法的不熟悉使我很难找到解释。
static const int _ = []() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
return 0;
}()
我了解到 I/O 调用是为了提高执行速度。我没有掌握的是语法——这是函数定义还是 lambda 表达式?这段代码是如何执行的?
这是 lambda 语法,所以他们正在做的是创建一个 c++ lambda,它执行上面的代码并对其求值,然后将结果存储为 static const int
。更多信息在这里:https://en.cppreference.com/w/cpp/language/lambda
我最好的猜测是在调用 main
之前首先评估此函数,因为 static const
值在启动程序之前被初始化。这似乎是 stdio 状态初始化器的 hacky 版本。