【发布时间】:2015-01-21 06:38:03
【问题描述】:
我有两个容器 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。
标签: c++ pointers dictionary