获取向量C ++中第一个和最后一个值的和

时间:2018-10-30 12:43:51

标签: c++ vector sum

我想获取向量中最后一个元素的总和

这是我尝试过的,由于某种原因,我一直使该值为零。我应该改变什么。

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;
   }

1 个答案:

答案 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()相同。