赞
踩
LRU是Least Recently Used的缩写,即最近最少使用,常用于页面置换算法,是为虚拟页式存储管理服务的。LRU算法的提出,是基于这样一个事实:已经很久没有使用的页面很可能在未来较长的一段时间内不会被用到。因此,我们只需要在每次调换时,找到最近最久未使用的那个页面调出内存。这就是LRU算法的全部内容。
使用双向链表和哈希表实现LRU算法
实现了get操作和put操作
与有的博客中实现方式不同的是,我用一个变量size_保存双向链表的长度,因为std::list的size方法是O(n)时间复杂度的(具体可看我另一篇转载的博客)。做了这个改进后,get和put的时间复杂度都为O(1)
代码实现
class LRUCache {
public:
LRUCache(int capacity) : cap_(capacity), size
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。