struct in vector pushen
-
Hallo,
ich bin mir nicht ganz sicher ob das hier sinn mach, deshalb hier die frage an euch: Das ziel des ganzen ist es, elemente des typs struct in einen vector zu packen mit Hilfe der Methode addModel.Hier meine vector-declaration, das struct und die methode:
std::vector<Entry> models; struct Entry{ int index; FeatureVector* value; int object; }; void ModelContainer::addModel(FeatureVector* pFeatVec,int index, int object) { Entry tmpEntry; tmpEntry.index=index; tmpEntry.object = object; tmpEntry.value=pFeatVec; models.push_back(tmpEntry); }Um nun zu meiner Frage zu kommen: Ist diese methode so in ordnung? Das ganze laeuft soweit, ich wuerde aber ungerne eine methode haben die eher per zufall laeuft. Ich weiss das es keinen sinn macht, referenzen zu lokalen variablen zurueckzugeben, weil diese ja geloescht werden wenn sie out of scope sind. Ist das hier evtl das gleiche? Packe ich ein Element in den vector was hinterher geloescht ist? Oder kopiert die push_back methode von vector die werte anstatt nur zu referenzieren?
Danke!
Christian
-
Die STL kopiert ständig und überall. Deshalb ist dein Code grundsätzlich ok. Nur das hier:
tmpEntry.value=pFeatVec;kann kritisch werden. Zeiger in STL-Containern sind ein Thema für sich.
-
danke fuer die Info.. Ich hoffe mal dass mit das mit den pointern nicht irgendwann um die Ohren fliegt.. Schoen aber erst einmal zu wissen dass das ganze so im Grunde in Ordnung ist.
Gruesse