S
silversurfer
Hello,
I am a little unsure whether this method really makes sense. The goal
is to add an element to a vector. This is the struct and method I am
using:
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);
}
To come to my question: Is this method valid as such? It does work so
far, but I am not sure whether this could be just luck? I know that it
could make no sense to return local variables, because they are
destroyed when they get out of scope. Is it the same thing here? Am I
adding an element which is destroyed after the method or am I copying
the values to a new location by adding them to the vector and
everything is fine? If I dealt with variables, I would use the "new"
operator, but this is not possible with structs isn't it?
Thanks
Tim
I am a little unsure whether this method really makes sense. The goal
is to add an element to a vector. This is the struct and method I am
using:
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);
}
To come to my question: Is this method valid as such? It does work so
far, but I am not sure whether this could be just luck? I know that it
could make no sense to return local variables, because they are
destroyed when they get out of scope. Is it the same thing here? Am I
adding an element which is destroyed after the method or am I copying
the values to a new location by adding them to the vector and
everything is fine? If I dealt with variables, I would use the "new"
operator, but this is not possible with structs isn't it?
Thanks
Tim