我想总结一下std :: vector
的项目例如
std::vector<int > MYvec;
/*some push backs*/
int x=sum(MYVec); //it should give sum of all the items in the vector
如何编写sum
函数?
我试过这个
int sum(const std::vector<int> &Vec)
{
int result=0;
for (int i=0;i<Vec.size();++i)
result+=Vec[i];
return result;
}
但我不喜欢我的方法
答案 0 :(得分:8)
尝试使用C ++标准库中的accumulate。 像这样:
#include <vector>
#include <numeric>
// Somewhere in code...
std::vector<int> MYvec;
/*some push backs*/
int sum = std::accumulate( MYvec.begin(), MYvec.end(), 0 );
答案 1 :(得分:2)
您应该使用std::accumulate
。
int main() {
std::vector<int> vec;
// Fill your vector the way you like
int sum = std::accumulate(vect.begin(), vect.end(), 0); // 0 is the base value
std::cout << sum << std::endl;
return 0;
}
答案 2 :(得分:1)
是否有std :: accumulate函数执行此操作?
答案 3 :(得分:0)
你必须迭代数组中的所有项目并计算总和,没有更简单的方法。我想循环是最简单的
int sum = 0;
for(unsigned i = 0; i < Myvec.size(); i++){
sum += MYvec[i];
}