我有一个std::vector<MyClass*>
(MyClass 指针的向量),我需要在向量中找到一个特定的项目。该类具有getID()
返回该类的唯一标识符的函数。
如果我想查找具有特定 ID 的类,我会遍历向量以查找具有该 ID 的类,如下所示:
for(std::vector<Chunk*>::iterator it = chunksRenderList.begin(); it != chunksRenderList.end(); ++it)
{
if((*it)->getID() == id)
return *it;
}
这相当慢,因为我每秒调用此代码很多次。我尝试过使用std::unordered_map
速度慢得多的 a ,而 astd::map
又变慢了。我不知道为什么它变慢了,也许这是我使用它的方式。
是否有任何容器/算法可以用来访问特定项目而无需迭代(这比迭代更快)?