C++ 向量中元素的和?

C++ 向量中元素的和?,c++,vector,sum,C++,Vector,Sum,如何找到用户输入的向量中元素的总和?我试着在网上到处寻找这样做的方法,但在网上找不到一个解释得很好的方法,也没有在课堂上解释得太多 我基本上有用户输入的向量,但我不知道如何用它来求和?(printvector之所以存在,是因为我必须在告诉用户总数之前向用户展示用户输入的内容) #包括 #包括 使用名称空间std; 空填充向量(向量&); 无效打印向量(常量向量&); int main() { 矢量量; fillVector(矢量量); 打印矢量(矢量量); 返回0; } 无效填充向量(向量和新向

如何找到用户输入的向量中元素的总和?我试着在网上到处寻找这样做的方法,但在网上找不到一个解释得很好的方法,也没有在课堂上解释得太多

我基本上有用户输入的向量,但我不知道如何用它来求和?(printvector之所以存在,是因为我必须在告诉用户总数之前向用户展示用户输入的内容)

#包括
#包括
使用名称空间std;
空填充向量(向量&);
无效打印向量(常量向量&);
int main()
{
矢量量;
fillVector(矢量量);
打印矢量(矢量量);
返回0;
}
无效填充向量(向量和新向量数量)
{
cout>输入;
while(输入!=-1){
新矢量数量。推回(输入);
cin>>输入;
}
试试这个:

void printSum(const vector<int>& newVectorQuantities) {

    cout << "Sum: ";
    int sum = 0;
    for (unsigned int i=0; i < newVectorQuantities.size(); i++) {
        sum = sum + newVectorQuantities[i];
    }
     cout << sum << " ";
}
void打印和(常量向量和新向量数量){
试试这个:

void printSum(const vector<int>& newVectorQuantities) {

    cout << "Sum: ";
    int sum = 0;
    for (unsigned int i=0; i < newVectorQuantities.size(); i++) {
        sum = sum + newVectorQuantities[i];
    }
     cout << sum << " ";
}
void打印和(常量向量和新向量数量){

cout您可以使用
std::accumulate()


#include,默认情况下,它使用
+
函数组合元素。

您可以使用
std::accumulate()


#include,默认情况下,它使用
+
函数来组合元素。

编译器的可能副本的可能副本不是很快,因此我无法确定它是否有效,但我明白了这个想法,感谢您使用名称空间std,我们实际上不允许使用那么多字符串。会使printAvera无效吗如果定义正确,ge的工作方式相同?您可能需要使用双精度和(或至少除法)对于printAverage。否则,您的平均值将是一个整数,被截断。为了稳健性,您可能也应该对printSum使用双精度和,否则如果您有一个大列表,它可能会溢出。明白了。我应该将列表限制为10,但我能做的最好是将它设置为-1将标记列表的结尾。一旦我计算关于如何将其限制为10,我会的,尽管我认为应该可以,因为脚本的一般用途是使用10个输入。非常感谢您的帮助!更改while循环:while(输入!=-1&&newvectorQuantilities.size()<10)。这将在-1或10个条目后终止。编译器速度不是很快,所以我无法确认它是否正常工作,但我明白了,感谢您使用名称空间std,我们实际上不允许使用那么多字符串。如果正确定义printAverage,是否会以同样的方式无效?您可能需要使用double精度和(或至少除法)对于printAverage。否则,您的平均值将是一个整数,被截断。为了稳健性,您可能也应该对printSum使用双精度和,否则如果您有一个大列表,它可能会溢出。明白了。我应该将列表限制为10,但我能做的最好是将它设置为-1将标记列表的结尾。一旦我计算关于如何将其限制为10,我会的,尽管我认为应该可以,因为脚本的一般用途是使用10个输入。非常感谢您的帮助!更改while循环:while(input!=-1&&newvectorQuantilities.size()<10)。这将在-1或10个条目后终止。
#include <algorithm>
std::vector<int> vec = ...;
int vecSum = std::accumulate(std::begin(vec), std::end(vec), 0);