使用累加计算替代总和

如果我在 C++ 中使用累加函数,如下所示

 std::vector<int> v2{1, 2, 3, 4, 5};
 int sum = 0;
 std::cout << std::accumulate(v2.begin(), v2.end())

它将简单地将所有数字相加。但我想计算 1-2+3-4+5
我正在考虑一些方法来分别累积 1,3,5 和 2,4 然后做它
但不知道如何使用累积来实现这一点。

回答

这是我的快速解决方案:

int sign = -1; // start with minus first (e.g. 1-2)
std::vector<int> values{ 1, 2, 3, 4, 5 };

auto value = std::accumulate(values.begin(), values.end(), 0, [&sign](int total, int value)
{ 
    sign = -sign;  
    return total + (sign)*value;
});


以上是使用累加计算替代总和的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>