Russian Qt Forum

Qt => Общие вопросы => Тема начата: Igors от Ноября 23, 2010, 15:04



Название: Кэш
Отправлено: Igors от Ноября 23, 2010, 15:04
Добрый день

Есть стандартная связка ключ-данные, могу использовать напр QHash для быстрого поиска. Но нужно ограничить число элементов до заданного числа N. Задача найти элемент по ключу X. Алгоритм

- просматриваем есть ли он в кэше. Если да - берем его оттуда и увеличиваем число обращений к нему
- если нет, ищем его др. способами и вставляем в кэш. При этом если число хранимых в кэше данных >= N, элемент кэша с наименьшим числом обращений удаляется из кэша

Все это очень банально, но почему-то я не соображу как сделать  :)

Спасибо


Название: Re: Кэш
Отправлено: BRE от Ноября 23, 2010, 15:33
Посмотри реализацию QCache.


Название: Re: Кэш
Отправлено: Igors от Ноября 24, 2010, 15:10
Ага, оказывается есть такой  :) Правда он всегда вытесняет элемент обращение к которому было последним - ну это тоже совсем неплохо/приемлемо. Реализацию со списком я рассматривал но с чего-то подумал что не могу хранить адреса значений из QHash  ???. Ок, спасибо за наводку.