如何找到用户输入的向量中元素的总和?我尝试在网上到处寻找一种方法,但实际上并没有真正找到一个解释得非常好的方法,也不是在课堂上解释得太多了。
所以我基本上都有用户在这里输入的向量,但我不知道如何使用它来获取它的总和? (printvector只在那里,因为我必须在告诉用户总和之前呈现用户输入的内容)
#include <iostream>
#include <vector>
using namespace std;
void fillVector(vector<int>&);
void printVector(const vector<int>&);
int main()
{
vector<int> VectorQuantities;
fillVector(VectorQuantities);
printVector(VectorQuantities);
return 0;
}
void fillVector(vector<int>& newVectorQuantities)
{
cout << "Type in a list of numbers, and type in -1 as the last number when you are finished: ";
int input;
cin >> input;
while (input != -1) {
newVectorQuantities.push_back(input);
cin >> input;
}
cout << endl;
}
void printVector(const vector<int>& newVectorQuantities) {
cout << "Vector: ";
for (unsigned int i=0; i < newVectorQuantities.size(); i++) {
cout << newVectorQuantities[i] << " ";
}
cout << endl;
}
答案 0 :(得分:4)
您可以使用std::accumulate()
。
#include <algorithm>
std::vector<int> vec = ...;
int vecSum = std::accumulate(std::begin(vec), std::end(vec), 0);
accumulate()
函数实际上只是left fold,默认情况下它使用+
函数来组合元素。
答案 1 :(得分:-1)
试试这个:
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 << " ";
}
(使用你的风格作为函数,而不是现代的C ++。)