dzi*_*wna 7 c++ algorithm performance vector multidimensional-array
我正在用C++创建游戏应用程序.我已经地图表示为2维std::vector的Tile对象.
我需要在玩家移动时更新该地图.从服务器应用程序中,我获得了包含全局映射的新部分的行或列,该部分应放在本地客户端的映射中,例如:

在图1中,在玩家移动之前有一张本地地图.顶行填充对象1,中心为2,底部为0.现在当玩家向上移动时,我得到新的顶行填充对象3,其他所有其他都应该向下,前一个底行应该消失.
我只能通过在for循环中移动所需的对象来做到这一点,但我在想是否在标准库中已经存在某种算法,或者通过许多有效的方法来实现这种修改.
编辑:
对不起,我没有意识到对行和列执行此操作之间会有区别,但确实存在.所以我也编辑了我的头衔,因为我有时也需要为专栏做这个.
您可能希望实现迭代器,并且根本不移动向量的元素.只需为顶行(在屏幕上)的索引定义变量,然后使用模运算符迭代所有行(因此只有000行应该用333覆盖,而顶行索引将是2而不是0).该算法是有效的(只需要尽可能多的内存写入),并可用于向任何方向滚动: