使用矢量来存储entites

时间:2016-10-31 06:50:51

标签: c++ game-engine

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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