これが私のコードです:
void SurfaceManager::SurfaceManagerDelete()
{
for(map<string,SurfaceManager*>::iterator Iter = SurfaceList.begin(); Iter != SurfaceList.end(); ++Iter)
{
delete (*Iter).second;
(Iter) = SurfaceList.erase(Iter);
}
SurfaceList.clear();
}
VLDでスキャンすると、なぜこれがいくつかのメモリリークを引き起こすのですか?特にこの行「(Iter)= SurfaceList.erase(Iter);」の要素からメモリを削除する方法と関係があることはわかっていますが、その理由と想定方法を知りたいと思います。リストから要素を適切に削除します。