2015-04-16 38 views
-3

我正在編寫一個代碼來減去矢量的相鄰元素,並將答案輸入到一個新矢量中。但是,我的代碼不起作用。究竟是什麼錯誤?C++抽象化矢量中的相鄰元素

#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

當某些「不工作」時,儘可能精確。它是否編譯?它打印的不是您預期的輸出嗎?它會崩潰嗎?向我們提供證據,證明您在尋求幫助之前真的自己搜索過。 – Aracthor

回答

0

的代碼行:

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

將採取所尋求在元件從第一元件遠離各一次。 您是否想要:

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

+0

@Gordkn,是的,這就是我的意思。 – At19n0

1

您需要在訪問元素之前相應地調整矢量的大小。你可以在施工時使用它,或使用resize

vector<int>values(5/*pre-size for 5 elements*/);和類似的values2將解決您的問題。

當前您的程序行爲未定義。

如果你想減去相鄰的元素,那麼你不應該有values2[i]=values[i+1]-values[i];

+0

感謝您的反饋意見,是的,您對相鄰元素的減法是正確的。現在一切正常。 – At19n0