【问题标题】:vector element not updating向量元素未更新
【发布时间】:2012-12-22 16:34:19
【问题描述】:

为什么 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;
        }
    }

【问题讨论】:

    标签: c++


    【解决方案1】:

    你需要

    for (Entity& i : fb.Entities) 
    

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

    【讨论】:

      【解决方案2】:

      您需要将 references 带到容器元素:

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

      或者:

      for (auto & i : fb.Entities)
      

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

      【讨论】:

        猜你喜欢
        • 2021-03-09
        • 2019-04-18
        • 1970-01-01
        • 2018-05-07
        • 1970-01-01
        • 2022-06-19
        • 2016-01-24
        • 2020-04-16
        • 2011-02-07
        相关资源
        最近更新 更多