I have a map filled with and now I want to delete the memory completely. How do I do this right? couldn't find anything specific for this topic, sorry if it is already answered...
my code is something like this:
for(std::map<short,std::string>::iterator ii=map.begin();
ii!=map.end(); ++ii)
{
delete ⅈ
}
But it doesnt work. Can anybody help pls?
regards, phil
The way to do it right is not to do it. A map
will automatically release resources when it's destroyed for anything allocated automatically.
Unless you allocated the values with new
, you don't delete
them.
{
std::map<short,std::string> x;
x[0] = "str";
}
//no leaks here
{
std::map<short,std::string*> x;
x[0] = new std::string;
delete x[0];
}