Я делаю 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 (ключ, CacheEntry (значение)));
Как я могу добавить элементы в priority_queue?
А какие типы нужно указывать при создании очереди приоритетов?
станд :: priority_queue<?>
LRU не может быть реализован с вашей текущей DS. Вы должны использовать DLL с хэшированием каждого элемента. Вы можете использовать список с unordered_hash или map.
так как в текущей реализации вы не можете обновить данные priority_queue.