我正在尝试这样的事情来使用字符串的向量列表来预填充地图。代码是不言自明的:
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 中修改它吗?
有人可以帮助我了解发生了什么。