我有兩個容器std :: map; 如何從包含指向對象的指針的容器中刪除數據,知道指針(地址)?如何在地圖上找到指針?
std::map<K, CacheEntry<T>> values_;
std::map<CacheEntry<T>*, K> timeMap_;
如何在timeMap_中找到物品?
CacheEntry<T> tmp(value);
values_.insert(std::make_pair(key, tmp));
timeMap_.insert(std::make_pair(&tmp, key));
deleteFromTimeMap(&tmp);
而且deleteFromTimeMap:
void deleteFromTimeMap(const CacheEntry<T>* findItem)
{
details::LockGuard lk(mutex_);
auto it = timeMap_.find(findItem); //Error
timeMap_.erase(it);
}
那麼,什麼是錯誤?請發佈一個MCVE。 – juanchopanza 2015-01-21 06:40:46