当我使用 for 循环时,我可以立即解构参数,例如
for(const auto & [key, value] : myMap) { }
但是我可以在 lambda 中做同样的事情吗? (显然不是这样的,这不会编译)
std::for_each(myMap.begin(), myMap.end(), [](const auto & [key, value]) { });
这是不可能的,但您可以在 lambda 函数体内将变量声明为局部变量,并在那里进行解包:
std::for_each(myMap.begin(), myMap.end(), [](const auto & pair) {
const auto & [key, value] = pair;
});