我在我的程序中执行LRU缓存。 我有:
class DiadocCache : public IDiadocCache<K,T>
{
private:
std::map<K, CacheEntry<T>> values_;
std::priority_queue<?> timeQueue_;
}
优先级 - 在我的情况下,它是键上的点击次数。
我将项目放在std :: map中,如下所示: values_.insert(std :: make_pair(key,CacheEntry(value)));
我如何在priority_queue中添加元素? 在创建优先级队列时必须指定哪些类型? 的std :: priority_queue&LT;的 &GT;
答案 0 :(得分:0)
目前的DS无法实现LRU。你应该使用DLL与每个元素的散列。你可以使用带有unordered_hash或map的列表。 与当前实现一样,您无法更新priority_queue的数据。