我无法找到添加矢量int的一部分的方法。例如,如果我的向量int是[89,49,28,73,93,62,74,26,57,23等...]
如何将矢量添加到3个组中? (89 + 49 + 28),(73 + 93 + 62),(74 + 26 + 57)
或5人团体? (89 + 49 + 28 + 73 + 93),(62 + 74 + 26 + 57 + 23)
基本上我的团体。然后将总和放入另一个向量中。
示例1:3的组--->矢量和= [166,228,157,...]
实施例2:2的组--->矢量和= [138,101,155,...]
答案 0 :(得分:0)
您可以使用std::accumulate
,如下所示
// v the original vector
// int n =3; // groups
for(it= v.begin(); it != v.end() ; it += n )
std::cout << std::accumulate( it, it+n, 0) << std::endl ;
在这里,您需要确保it
未通过向量v
的结尾,您可以执行此操作以附加零,如下所示:
int zeros = n - (( v.size( ) % n ) ? ( v.size( ) % n ) : n ) ;
for( int x = 1 ; x <= zeros; ++x )
v.push_back( 0 );
最后你可以使用上面的std::accumulate
演示here