オブジェクトへのポインターの配列のハッシュを作成しようとしています。
ハッシュ キーはオブジェクトの型の int であり、配列はレンダリングするオブジェクトのリストです。
私がやろうとしていることは次のとおりです。
unordered_map<int, vector<Object*> > drawQueue;
drawQueue.clear(); // new empty draw queue
for ( ... ) {
drawQueue.at(type).push_back(my_obj);
}
そのため、キーが存在しない場合に発生するout_of_boundsという例外が発生するため、STLのニュアンスに十分に精通していません。
したがって、最初にキーを作成してから、ベクターに追加する必要があると考えました。
if (drawQueue.count(type)) {
// key already exists
drawQueue.at(type).push_back(my_obj);
} else {
//key doesn't exist
drawQueue.insert(type, vector<Object*>); // problem here
drawQueue.at(type).push_back(my_obj);
}
vector
しかし、今は本当に迷子になっています。作成/初期化/空の挿入の方法がわからないためunordered_map
です...
それとも、これを完全に間違った方法で行っていますか?