このメソッドは中止エラーを引き起こします:失敗"map/set iterator not incrementable."
した後、if
消去する必要がある有効なイテレーターが決定された (そして現在ある)ため、有効なオブジェクト/ポインターではない++_iter
ため、failsを介してマップ内の次のイテレーターに進みます。_iter
マップを反復処理し、全体を通して個々のアイテムを削除する機能を持つための正しい手順は何ですか?
typedef std::map<std::string, BITMAP*> MapStrBmp;
typedef MapStrBmp::iterator MapStrBmpIter;
\\...
void BitmapCache::CleanCache() {
//Clean the cache of any NULL bitmaps that were deleted by caller.
for(MapStrBmpIter _iter = _cache.begin(); _iter != _cache.end(); ++_iter) {
if(_iter->second != NULL) {
if((_iter->second->w < 0 && _iter->second->h < 0) == false) continue;
}
_cache.erase(_iter);
}
}