C++设计策略中的向量和

ram*_*hna 3 c++ stl vector

可能重复:
a中元素的总和std::vector

我想总结std :: vector的项目

例如

 std::vector<int > MYvec;
 /*some push backs*/

 int x=sum(MYVec); //it should give sum of all the items in the vector
Run Code Online (Sandbox Code Playgroud)

怎么写sum功能?

我试过这个

 int sum(const std::vector<int> &Vec)
 {
    int result=0;
    for (int i=0;i<Vec.size();++i)
      result+=Vec[i];
    return result;
 }
Run Code Online (Sandbox Code Playgroud)

但是我不喜欢我的做法

Rom*_*ang 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 );
Run Code Online (Sandbox Code Playgroud)

  • `accumulate`来自`<numeric>`标题. (2认同)
  • 请参阅Prasoon的回答http://stackoverflow.com/questions/3221812/sum-of-elements-in-a-stdvector/3221813#3221813 (2认同)