【发布时间】:2020-02-29 01:00:33
【问题描述】:
我尝试以非循环方式实现对 vector<vector<int>> 的所有元素的总结。
之前查过一些相关问题,How to sum up elements of a C++ vector?.
所以我尝试使用std::accumulate 来实现它,但我发现我很难在std::accumulate 中重载Binary Operator 并实现它。
所以我对如何使用std::accumulate 实现它感到困惑,或者有更好的方法吗?
如果不介意有人可以帮助我吗?
提前致谢。
【问题讨论】:
-
I find it is hard for me to overload a Binary Operator in std::accumulate and implement it.为什么?您尝试了哪些方法,为什么没有成功? -
没有循环就无法做到。
std::accumulate里面有一个循环,通过使用算法,你只是在使用一个已经为你编码的循环。 -
不要在
std中超载你还需要展示一些工作。这不是一个教程网站。您需要就您尝试过的工作提出具体问题。 -
您不会重载任何东西,您将创建的二进制操作传递给 std::accumulate。它可以是函数、lambda 或函数对象。
-
基本问题是您需要一个循环,或者您必须在没有循环的情况下按顺序添加每个项目。
std::accumulate使用循环。甚至专门的处理器指令也使用循环。那么,为什么要避免循环呢?