介绍
缓存中容量是有限的,当要查找的数据不在缓存中时,我们要用新数据替换掉
部分原有得数据,有很多种替换策略,lru就是最近最少使用的被替换,我们想要
将来被使用的数据保留下来,但我们不知道将来会使用那些数据,就按照最近使用数据近似将来也会使用的数据。
原理
我们要如何体现最近最少使用呢?采用一个队列,新加入的数据和上次使用过
的数据放到队列头,要替换时从队列尾删除数据
我的编程实现
在实际实现中,并没有采取队列,而是使用链表,因为根据定义我们需要经常
移动数据,采用连续空间的数据结构就不合适。
用了leetcode,LRUCache这一题做为实现测试
LRUcache里,使用了unordered_map和双向链表
用双向链表来维护最近使用信息
用unorderd_map来储存key和value映射,代码如下:
using namespace std;
typedef