小编San*_*hat的帖子

lambda 函数不更新引用数组

我有一个方法,基本上将传递的引用数组的每个值更新 5。

最初我尝试了以下选项,但它不会更新参考数组。

选项1:

void Int_Array_Update(std::vector<int>& param)
{   
    auto f1 = [](int n) { return n + 5; };
    std::for_each(param.begin(), param.end(), f1);
}
Run Code Online (Sandbox Code Playgroud)

选项2:

void Int_Array_Update(std::vector<int>& param)
{   
    auto f1 = [&](int n) { return n + 5; };
    std::for_each(param.begin(), param.end(), f1);
}
Run Code Online (Sandbox Code Playgroud)

选项 3:

void Int_Array_Update(std::vector<int>& param)
{   
    auto f1 = [&param](int n) { return n + 5; };
    std::for_each(param.begin(), param.end(), f1);
}
Run Code Online (Sandbox Code Playgroud)

我目前的解决方法如下:

void Int_Array_Update(std::vector<int>& param)
{   
    for (int i = 0; i < param.size(); ++i)
        param[i] = …
Run Code Online (Sandbox Code Playgroud)

c++ lambda c++11

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

标签 统计

c++ ×1

c++11 ×1

lambda ×1