I searched StackOverflow but couldn't find the answer to this question.
Suppose I have a std::vector<Day *> vector_day
- that is - a vector of pointers to Day
object. Now I push_back
to vector_day
many elements:
vector_day.push_back(new Day(12));
vector_day.push_back(new Day(99));
vector_day.push_back(new Day(71));
...
Now at some point I no longer need vector_day
. What is the right way to free the memory?
It this the correct way:
for (std::vector<Day *>::iterator i = vector_day.begin(); i != vector_day.end(); ++i) {
delete *i;
}
Doesn't this invalidate the vector on each deletion? I am very confused.