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

Ami*_*nis -2 c++ sum vector

我想得到向量中第一个最后一个元素的总和

这是我尝试过的,由于某种原因,我一直得到的值是零.我该怎么改变

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;
   }
Run Code Online (Sandbox Code Playgroud)

lub*_*bgr 8

您可以通过计算所需的值

const int sum = vec.front() + vec.back();
Run Code Online (Sandbox Code Playgroud)

但是,您不希望在空向量上调用此方法,因此请确保vec.empty()事先返回false.

const int sum = vec.empty() ? 0 : vec.front() + vec.back();
Run Code Online (Sandbox Code Playgroud)

对于具有一个元素的向量,这将是相同的const int sum = 2*vec.front().