【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(...)
};

image

image

image

posted @ 2025-03-05 17:23  Tshaxz  阅读(514)  评论(0)    收藏  举报
Language: HTML