У меня есть два контейнера 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