我正在编写一个代码来减去向量的相邻元素,并将答案输入到一个新向量中。但是,我的代码无效。这究竟出了什么问题?
#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;
}
答案 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];