【发布时间】:2016-11-22 22:41:32
【问题描述】:
我正在尝试优化我的游戏中的射弹对象的组织。
我读到我应该避免在游戏运行时进行分配以避免性能问题。因此,如果我在游戏状态开始时使用 reserve(1000) 初始化一个向量,并在运行时通过 push_back(Projectile()) 添加 Projectile 对象;这会导致“分配”还是它只是用东西填充已经分配的空间并且超快? ;D
【问题讨论】:
-
这将是超快的,因为您不要求超过 1000 个元素
-
使用 emplace_back 会更快,因为这样可以避免可能的复制。
-
@Surt push_back 支持移动语义
-
什么是
projectile?是可移动的吗?向量中有多少个元素?vector毕竟提供了摊销常数push_back()。 -
@AntoineMorrier,没错,但比移动更快的是根本不移动或复制,施工到位。
标签: c++ performance vector