c++ unordered_map von Vektoren

Also konzeptionell ist ich bin versuchen, um einen hash von arrays von Zeigern auf mein Objekt.

Die Raute-Taste ist ein " int " für die Art des Objekts, und das array ist eine Liste der Objekte zu Rendern.

Was ich versuche zu tun ist :

unordered_map<int, vector<Object*> > drawQueue;
drawQueue.clear(); //new empty draw queue

for ( ... ) {
   drawQueue.at(type).push_back(my_obj);
}

So, ich bin nicht vertraut genug mit den Feinheiten des STL-Sachen, da bekomme ich auch eine exception zu sagen out_of_bounds, was passiert, wenn der Schlüssel nicht vorhanden.

Also dachte ich, ich muss eine Taste zuerst, und dann fügen Sie die Vektor :

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);
}

Aber jetzt bin ich wirklich verloren, da ich nicht weiß, wie man erstellen/initialisieren/was auch immer eine leere vector dem einfügen der unordered_map...

Oder mache ich das den völlig falschen Weg?

Hinweise kluge Völker?

Haben Sie einen Blick auf operator[] ? oder der eigentlichen Dokumentation von insert() ?
Akzeptieren die Antwort, es ist nützlich.

InformationsquelleAutor user1463416 | 2012-06-18

Schreibe einen Kommentar