问题来源:

https://leetcode-cn.com/problems/flatten-nested-list-iterator/solution/yi-ti-shuang-jie-dfsdui-lie-di-gui-zhan-kvwhy/

问题表现方式:

  1. std::function<void(vector<NestedInteger>)> dfs = [&](vector<NestedInteger> nestedList){
  2. for(const auto& x : nestedList){
  3. if(x.isInteger()) q.push_back(x.getInteger());
  4. else dfs(x.getList());
  5. }
  6. };
  7. dfs(nestedList);

查找问题思路:

原代码是在:函数定义+函数调用
[&]
搜索: c++ [&]
得到关键词: lambda

https://blog.csdn.net/aixintianshideshouhu/article/details/94548940
转到学习lambda

学习lambda:

最简写: ->{}

参数=捕捉=值传递+引用方式

[&]
[=]
[var_name] [&var_name]
[this]
->右边为返回值 有一点像js的箭头函数

特殊之处:捕获上下文所有变量,不局限于形参、实参