очередь с приоритетами и карта

Я делаю 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<?>

3

Решение

LRU не может быть реализован с вашей текущей DS. Вы должны использовать DLL с хэшированием каждого элемента. Вы можете использовать список с unordered_hash или map.
так как в текущей реализации вы не можете обновить данные priority_queue.

0

Другие решения


По вопросам рекламы [email protected]