C ++减去向量中的相邻元素

时间:2015-04-16 12:46:14

标签: c++ vector

我正在编写一个代码来减去向量的相邻元素,并将答案输入到一个新向量中。但是,我的代码无效。这究竟出了什么问题?

#include <iostream>
#include <vector>
using namespace std;

int main()
{
    int length;
    vector<int>values;
    vector<int>values2;

    cout << "Enter the length of the vector";
    cin  >> length;

    values[0]=1; values[1]=2; values[2]=3; values[3]=4; values[4]=5;

    for(int i=0; i<length; i++)
    {
        cout<<"Enter the " << i <<"th element of the vector";
        cin >> values[i];
    }

    for (int i=0; i<length-1; i++)
    {
        values2[i]=values[i+1]-values[0];

    }

    return 0;
}

2 个答案:

答案 0 :(得分:1)

在访问元素之前,您需要相应地调整向量的大小。您可以在构建时使用resize

vector<int>values(5/*pre-size for 5 elements*/);以及values2的类似内容可以解决您的问题。

目前您的程序行为未定义。

如果你想减去相邻的元素,那么你不应该values2[i]=values[i+1]-values[i];吗?

答案 1 :(得分:0)

代码行:

values2[i]=values[i+1]-values[0];

每次都会使被观察元素远离第一个元素。 你的意思是:

values2[i]=values[i+1]-values[i];