我正在制作一个小游戏,我正试图使用矢量作为容器来存储世界上所有的参与者。但是,我需要一种频繁插入和删除entites的方法。 我目前正在使用它来删除实体:
std::swap(m_entities[index], m_entities.back());
m_entities.pop_back();
但我无法检查项目是否存在,因此如果我意外尝试删除项目,它会崩溃。索引也存储在实体中,因此索引对于交换的实体无效吗? 我应该使用unordered_map吗?
答案 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