小编Ser*_*zer的帖子

lambda 函数中的临时捕获变量 - C++11

我正在尝试这样的事情来使用字符串的向量列表来预填充地图。代码是不言自明的:

Constructor(const vector<string>& names) {
  for_each(names.begin(), names.end(),
                     [this, counter = 1](const String& choice) mutable {
                            nameMapping.emplace(choice, counter++);
                        }
  );
}
Run Code Online (Sandbox Code Playgroud)

我没有真正理解的是如何counter工作?

仅供参考:counter在 lambda 函数之外无处声明。

但是,我能够在类范围中创建一个局部变量并在可变的 lambda fn 中修改它吗?

有人可以帮助我了解发生了什么。

c++ lambda c++11

3
推荐指数
1
解决办法
226
查看次数

标签 统计

c++ ×1

c++11 ×1

lambda ×1