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;
}
このコードを 1 秒間に何度も呼び出しているため、これはかなり遅いです。std::unordered_map
私はずっと遅いa を使ってみましたが、 astd::map
もまた遅かったです。なぜ遅くなったのかはわかりませんが、私の使い方のせいかもしれません。
反復せずに特定のアイテムにアクセスするために使用できるコンテナ/アルゴリズムはありますか (反復よりも高速です)?