0

fb.Entities 集合中的 iX 和 iY 怎么没有更新?

难道我做错了什么?我正在学习,这是更新向量中某些值的正确方法吗?

    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;
        }
    }
4

2 回答 2

3

你需要

for (Entity& i : fb.Entities) 

取实际实体,而不是副本。

于 2012-12-22T16:37:10.643 回答
3

您需要引用容器元素:

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

或者:

for (auto & i : fb.Entities)

(否则,i将是容器元素的副本,因此对它的任何更改都会丢失。)

于 2012-12-22T16:37:24.573 回答