tags:
- DSA
A. Least Recently Used Algorithm (NC)
LRU 算法是一个在现实中被广泛应用的置换算法,常用于操作系统中内存的页面置换、Cache的槽置换等。只要是有关资源置换的,LRU都能插上一脚(浏览器缓存、数据库缓存等)。尽管 LRU 算不上一个 optimal algorithm,但是在实践中算得上置换算法的 GOAT 。
我们来实现一个泛型的 LRU ,支持任何类型的资源。我们假设资源的大小是固定的,我们缓冲区的大小也是恒定的。在这种情况下,我们使用 std::array
来管理缓冲区。为了快速找到对应的元素,我们还需要用到哈希表,因为我们有键值对的需求,这里选择 std::unordered_map
。
#include <iostream>
#include <unordered_map>
#include <array>
class LRU_Buffer{
private:
constexpr int capacity = 100;
public:
int buffer_init(){
std::cout << "Buffer initialized" << std::endl;
return 0;
}
};
int main(){
return 0;
}