2012-12-22 42 views
0

爲什麼i.X和i.Y沒有在fb.Entities集合中更新?不更新矢量元素

我做錯了什麼?我在學習,這是更新矢量中某些值的正確方法嗎?

for (Entity i : fb.Entities) 
    { 
     if (i.Serial == SerialID) 
     { 
      i.X = (USHORT)((data[5] << 8) + data[6]); 
      i.Y = (USHORT)((data[7] << 8) + data[8]); 
      break; 
     } 
    } 

回答

3

你需要

for (Entity& i : fb.Entities) 

採取實際的實體,而不是一個副本。

+0

哦好吧,生病試試吧 – Dean

3

你需要採取引用到容器中的元素:

for (Entity & i : fb.Entities) { /* ... */ } 
//   ^^^ 

或者:

for (auto & i : fb.Entities) 

(否則,i將容器元素的副本,所以任何對它的改變丟失了。)