使用向量存储实体

using vector to store entites

我正在制作一个小游戏,我正在尝试使用矢量作为容器来存储世界上的所有实体。但是我需要一种频繁插入和删除实体的方法。 我目前正在使用它来删除实体:

std::swap(m_entities[index], m_entities.back()); m_entities.pop_back();

但我无法检查某个项目是否存在,因此如果我不小心尝试删除项目,它会崩溃。索引也存储在实体中,因此索引对于交换的实体无效吗? 我应该改用 unordered_map 吗?

您应该分析容器的实际使用情况,然后参考基准,例如这个:

http://baptiste-wicht.com/posts/2012/12/cpp-benchmark-vector-list-deque.html

这里有一个更通用的 STL 复杂性页面:

https://john-ahlgren.blogspot.de/2013/10/stl-container-performance.html