2013-03-02 67 views
2

我有這樣的代碼:C++矢量給人難以置信的意外值

std::vector <int> loc; 
loc.push_back(cpx); 
loc.push_back(cpy); 
loc.push_back(play.GetSize().x); 
loc.push_back(70); 
std::cout<<loc[3]; 

在一場比​​賽中我在做,但即使當我打印LOC的值[2]和LOC [3]他們比他們完全不同應該是,當我運行這段代碼時,我得到loc [3]等於70070而不是70.有人知道如何解決這個問題嗎?

+1

沒有大量的信息去......是什麼'cpx','cpy','play'? – filipe 2013-03-02 00:41:17

+0

我只注意到這兩個LOC [3]和LOC [4]總是給我說,是在1000次到大,對最後兩位數字一對夫婦的隨機數字值。我不完全確定這是什麼意思,但我知道loc [0]和loc [1]沒有任何問題。 – Chachmu 2013-03-02 00:41:45

+0

@filipe cpx是我現在從5開始的「玩家」的當前x,並保持在那裏,除非我按下一個按鈕來移動它。 cpy與y相同,從0開始,以600的速度加速。 play是我正在使用的Sprite實例的名稱。我正在使用SFML庫。 – Chachmu 2013-03-02 00:43:52

回答

9

您還有另一個cout沒有endl\n您的代碼中某處忘記刪除。那個打印700,而70是代碼示例中最後一行的正確輸出。

你的最後一行更改爲std::cout<< " and loc[3] is: " << loc[3] << std::endl;看到我的胡亂猜測是正確的,然後開始搜索其它COUT。

+1

地獄沒有​​。 70,0,70! – 2013-03-02 00:45:19

+0

哇...你完全釘了它......在該打印語句的末尾添加了一個endl來仔細檢查並解決問題。謝謝! – Chachmu 2013-03-02 00:45:20

+0

我覺得挺傻 – Chachmu 2013-03-02 00:45:35

相關問題