是否可以使用 and 将向量的所有数字相加<functional><algorithm>?

Is it possible to add all of a vector's numbers using <functional> and <algorithm>?

本文关键字:lt gt functional algorithm 数字 and 可以使 向量 是否      更新时间:2023-10-16

我已经研究了这个问题一天了,但我似乎找不到答案。我需要使用并添加向量的所有元素。

到目前为止,我发现 http://www.cplusplus.com/reference/functional/plus/是否可以不添加 2 个向量将其元素添加在一起?我找不到任何其他东西可以接近做我想做的事情。

顺便说一下,我是这门语言的新手。我不需要代码,而只需要正确方向的提示。

执行此操作的算法位于 <numeric> 标头中,而不是在 <algorithm> 标头中。请参阅标准::累积。

#include <iostream>
#include <numeric>
#include <vector>
int main()
{
    std::vector<int> data = {1, 2, 10};
    const auto result = std::accumulate(data.begin(), data.end(), 0);
    std::cout << result << std::endl;
    return 0;
}

如果你坚持使用函数和<algorithm>你可以使用 std::for_each 和 std::function。

#include <algorithm>
#include <iostream>
#include <functional>
#include <vector>
int main()
{
    std::vector<int> data = {1, 2, 10};
    int result = 0;
    std::function<void(int)> sum = [&result](int value){result += value;};
    std::for_each(data.begin(), data.end(), sum);
    std::cout << result << std::endl;
    return 0;
}