LRU Cache的简单c++实现

本文介绍了LRU Cache算法,一种基于“最近最少使用”原则的缓存淘汰策略。LRU广泛应用于内存页置换,缓存数据以提高访问效率。通过使用双向链表,确保最近访问的数据位于链表头部,当缓存满时,移除最久未使用的数据。文章还简述了一个简单的C++实现,包括节点数据结构和LRUCache类的设计。
摘要由CSDN通过智能技术生成

什么是 LRU


LRU Cache是一个Cache的置换算法,含义是“最近最少使用”,把满足“最近最少使用”的数据从Cache中剔除出去,并且保证Cache中第一个数据是最近刚刚访问的,因为这样的数据更有可能被接下来的程序所访问。

LRU的应用比较广泛,最基础的内存页置换中就用了,对了,这里有个概念要清楚一下,Cache不见得是CPU的高速缓存的那个Cache,这里的Cache直接翻译为缓存,就是两种存储方式的速度有比较大的差别,都可以用Cache缓存数据,比如硬盘明显比内存慢,所以常用的数据我们可以Cache在内存中。

LRU基本算法描述


前提:

  • 由于我只是简单实现一下这个算法,所以数据都用int代替,下一个版本会改成模板形式的,更加通用。

要求:

  • 只提供两个接口,一个获取数据getValue(key),一个写入数据putValue(key,value)
  • 无论是获取还是写入数据,当前这个数据要保持在最容易访问的位置
  • 缓存数量有限,最长时间没被访问的数据应该置换出缓存<
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值