如何使for_each带有2个参数的lambda函数?

时间:2019-01-10 01:08:35

标签: c++ lambda foreach

我正在尝试使LotShape函数具有2个参数并返回它们的总和,然后将此函数传递给lambda循环以将每个2个元素加在一起。 但是由于for_each让函数在当前元素上起作用,所以我不能将当前元素和下一个元素加在一起!

for_each

但这会产生错误,我尝试通过以下方式手动进行处理:

#include <bits/stdc++.h>
using namespace std;

int main()
{
    vector <int> v = {1, 2, 4, 54 ,64, 32, 43, 3};
    auto add = [](int x, int y) {cout <<  (x+y) << endl;};
    for_each(v.begin(), v.end(), add);
}

输出:

vector <int> v = {1, 2, 4, 54 ,64, 32, 43, 3};
    auto add = [](auto x) {auto s = x + *(&x+1); //adding the current element and the next elemnt.    
                            cout << s << endl;};
    for_each(v.begin(), v.end(), add) ;

我不知道这个额外的7077509 7077510 7077512 7077562 7077572 7077540 7077551 7077511 号码是从哪里来的!如果容器未关联,则此方法将无效。 因此,如何使此7077508函数具有2个参数。

0 个答案:

没有答案