int main(){
hash_map<int, int> map;
map[9]= 999;
cout<<map[9]<<endl;
cout<<map[10]<<endl;
LRUCache<int, string> lru_cache(100);
lru_cache.Put(1, "one");
cout<<lru_cache.Get(1)<<endl;
if(lru_cache.Get(2) == "")
lru_cache.Put(2, "two");
cout<<lru_cache.Get(2);
return 0;
}
解析:首先使用链表来管理所有的已经使用或正在使用的节点(也就是物理内存页),刚开始分配了一些节点,存放在向量中,在缓冲没有使用完之前都是在向量中存放着,当向量中的缓冲使用完了,那么就必须从链表中的最后一个取出来当做新的节点来使用。在查找节点在链表中的位置时,如果每次都是从头来查找的话,效率会很低,所以使用了hash_map来管理链表中的所有节点,hash_map中都是使用过的节点,在查找时很方便。
C++ Primer Plus 第6版 中文版 清晰有书签PDF+源代码
将C语言梳理一下,分布在以下10个章节中:
Linux-C成长之路(十):其他高级议题