我想获取向量中最后一个元素的总和
这是我尝试过的,由于某种原因,我一直使该值为零。我应该改变什么。
int sum_first_last(vector <int> &v) {
for (int k = 0; k < v.size(); ++k) {
if (k == 0) {
int first_element;
first_element = v[k];
if (k == v.size()) {
int last_element;
last_element = v[k];
return first_element + last_element;
}
}
int main() {
vector<int> v1;
int n;
int k = 0;
cout << "please enter number of elements you wish to add" << endl;
cin >> n;
for (int i = 0; i < n; i++) {
cout << "enter the value" << endl;
cin >> k;
v1.push_back(k);
}
sum_first_last(v1);
cout << "the value is " << sum_first_last(v1) << endl;
return 0;
}
答案 0 :(得分:8)
您可以通过以下方式计算所需的值
const int sum = vec.front() + vec.back();
但是,您不想在空向量上调用此函数,因此请确保vec.empty()
事先返回false。
const int sum = vec.empty() ? 0 : vec.front() + vec.back();
对于具有一个元素的向量,这将与const int sum = 2*vec.front()
相同。