lambda表达式递归报错
报错代码:
void solve()
{
int n = 10;
vector<int> adj[n + 1];
auto dfs = [&](auto self, int u, int p) -> void
{
for (auto v : adj[u])
{
}
};
}
在递归lambda表达式中引用的外部变量尽量不要出现形如
vector<int> adj[n + 1]
我们修改成
vector<vector<int>> adj(n + 1)
就可正常运行了。
同时,注意递归lambda表达式一定要标注出返回的数据类型,不然也会报错
报错代码:
auto dfs = [&](auto self, int u, int p)
{
};
标签:递归,int,auto,报错,adj,lambda
From: https://www.cnblogs.com/value0/p/17729697.html