【C++】两种Lambda表达式的递归写法以及性能区别
做714. 买卖股票的最佳时机含手续费 - 力扣(LeetCode)时,写function形式的dfs结果超时了,换成C++23以上的auto写法就可以过。
这两种写法的区别如下: 省流版:显示递归auto写法比function快50~100倍
写法一,显示递归模版,C++23起支持
auto dfs = [&](this auto&& dfs, int i, int hold) -> int {
// 递归调用:dfs(...)
};
写法二,std::function包装
#include <functional>
std::function<int(int, int)> dfs = [&](int i, int hold) -> int {
// 递归调用:dfs(...)
};




浙公网安备 33010602011771号