优先队列和地图

时间:2014-12-18 07:13:43

标签: c++ stl queue lru

我在我的程序中执行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;

1 个答案:

答案 0 :(得分:0)

目前的DS无法实现LRU。你应该使用DLL与每个元素的散列。你可以使用带有unordered_hash或map的列表。 与当前实现一样,您无法更新priority_queue的数据。