求向量int的一部分的和
Finding the sum of a portion of vector int
我很难找到添加向量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)
基本上是i的群,然后把和代入另一个向量。
示例1:3组--->向量和=[166228157,…]
示例2:2-->向量和=[138101155,…]的组
您可以使用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
循环
演示此处
相关文章:
- 为什么在全局范围内使用"extern int a"似乎不行?
- int(c) 和 c-'0' 之间的区别。C++
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 为什么野牛仍在使用"int yylex(void)",却找不到"int yylex(YYS
- 有符号的int和int-有没有一种方法可以在C++中区分它们
- 请解释这句话(cout<<1+int((a<b)^((b-a)&1) )<<endl
- 是否可以从int转换为enum类类型
- 不能在初始值设定项列表中将非常量表达式从类型 'int' 缩小到'unsigned long long'
- 向量 <int> a {N, 0} 和 int arr a[N] = {0} 的时间复杂度有什么区别
- 'short int'持有的值溢出,但"自动"不会溢出?
- 如何在C++中将一个无符号的 int 转换为两个无符号的短裤?
- 调用'begin(int [n])'没有匹配函数
- 没有显式声明的int[]中的foreach
- 在c++中访问int到类对象的映射时出错
- 为什么我无法更改"set<set>"循环中的值<int>
- 如何将数组的一部分从 int 转换为浮点数并将值设置为另外两个数组
- 如何将此INT数组的一部分复制到C 中的另一个数组
- 如何在不复制的情况下将只读向量传递给作为<int> pair<int,int>向量一部分的函数
- 将Array的一部分转换为int型
- 求向量int的一部分的和