std:deque不会使引用无效。
我正在制作一个子弹物理游戏,其中我有一个平台类,它包含一个btBoxShape、btDefaultMotionState和一个btRigidBody作为成员。当退出我的游戏时,它崩溃了。我将平台对象存储在std::向量中,我认为这就是问题所在。当我推回更多平台时,向量会在内存中调整大小并移动。这意味着,无论指向刚体的形状和运动状态的指针是无效的。我应该如何解决这个问题?
我能想到几个选项。
固定大小的std::array
/std::vector
(reserve()
),如果可能的话
std::vector<Platform*>
您可能应该在这里使用智能指针,但基本上是分配自己,并在vector
中只存储指针。