我有两个容器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