LRU
最近最久未使用的置换算法(LRU):最近最久未使用(LRU)的置换算法的基本思路是,发生缺页时,选择最长时间没有被访问的页面进行置换,也就是说,该算法假设已经很久没有使用的页面很有可能在未来较长的⼀段时间内仍然不会被使用。
图解:
最后一步因为1号页面是「过去时间段里最久没有被访问的」, 所以把1号页面换出到磁盘,然后把3号页面换入到内存。
代码简易实现
#include<iostream>
#include<list>
#include<map>
using namespace std;
struct MyLRUnode
{
int key;//形成key+value结构
int value;
MyLRUnode(int a, int b) :key(a), value(b){
}
};
class LRUCache
{
public:
LRUCache(int size)
{
Lru_capacity = size;
}
int get(int key)
{
if (mymap.find(key) != mymap.end