组件设计系列:实现一个LRU缓存类

1、简介

在我负责的项目中,有很多公共的组件,实现的思路很值得我们学习。比如LRU缓存,这种策略在操作系统中也有应用。本次是基于C++实现的一个支持泛型的LRU缓存工具类,实现思路供大家参考。
LRU算法(Least Recently Used,最近最少使用),是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰。

2、实现LRU缓存

首先看一下LRUCache类的定义如下:
LruCache类的定义
思路主要是借助map和list来实现一个LRU缓存的实现,其中map用于快速查找,list用于顺序存储。map的key为数据的key,Value为list的元素指针。List中也存放具体的元素key-Value值。其中分别实现的函数主要包括有参构造函数,析构函数,put和get方法,以及返回整个LRU缓存的数据get_list方法。

先看看构造函数和析构函数的实现,其中构造函数为有参数构造。参数cap代表了LRU缓存的容量。当存放的数据多于cap,则会剔除最老的数据。

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值