【发布时间】:2011-04-08 01:45:02
【问题描述】:
我正在尝试使用 C++ 实现 LRU 缓存。我想知道实现它们的最佳设计是什么。我知道 LRU 应该提供 find()、添加元素和删除元素。删除应该删除 LRU 元素。实现这一点的最佳 ADT 是什么 例如:如果我使用元素作为值和时间计数器作为键的映射,我可以在 O(logn) 时间内搜索,插入是 O(n),删除是 O(logn)。
【问题讨论】:
-
boost::multiindex 其中键是“KEY”和“最后访问时间”。事实上,multiindex show how to make a LRU cache 的文档(尽管他们称之为 MRU)
标签: c++ algorithm data-structures lru