LRU快取-實現雜湊連結串列結合
class LRUCache {
private:
int cap;
list<pair<int ,int>> cache;
unordered_map<int,list<pair<int,int>>::iterator> map;
public:
LRUCache(int capacity) {
cap = capacity;
}
int get(int key) {
if(!map.count(key)){//沒找到
return -1;
}
auto key_value = map[key];//huoqu連結串列地址
cache.erase(key_value);//刪除對應的pair,傳遞的引數是值
cache.push_front(*key_value);//插入到連結串列頭,傳的引數是連結串列地址
map[key] = cache.begin();//連結串列頭
return key_value->second;
}
void put(int key, int value) {
if(!map.count(key)) {
if (cache.size() == cap) {
map.erase(cache.back().first);
cache.pop_back();
}
}else{
cache.erase(map[key]);
}
cache.push_front({key,value});
map[key]=cache.begin();
}
};
/**
* Your LRUCache object will be instantiated and called as such:
* LRUCache* obj = new LRUCache(capacity);
* int param_1 = obj->get(key);
* obj->put(key,value);
*/
list是雙向連結串列,從頭插入程式碼 cache.push_front(make_pair<int,int>(key,value));
cache.erase()//引數是迭代器位置,也就是指標,地址,
cache.pop_back()//從尾部刪除一個節點
cache.pop_font()//從頭部刪除一個節點
cache.insert(迭代器位置,元素)//在迭代器位置之前插入一個元素
hashmap的函式:
map.count(key);//如果找到了返回1,沒找到返回0
map[key]=valie;//直接fuzhi
map.erase(key);//根據key刪除元素。
相關文章
- 看動畫理解「連結串列」實現LRU快取淘汰演算法動畫快取演算法
- 傳統LRU連結串列 vs MySQL的LRU連結串列,孰優孰劣?MySql
- 連結串列-單連結串列實現
- Android技能樹 — 陣列,連結串列,雜湊表基礎小結Android陣列
- Leetcode LRU快取,陣列+結構體實現LeetCode快取陣列結構體
- LRU快取實現(Java)快取Java
- 你知道MySQL的LRU連結串列嗎?MySql
- 資料結構與演算法——雜湊表類的C++實現(分離連結雜湊表)資料結構演算法C++
- 連結串列以及golang介入式連結串列的實現Golang
- Linux核心連結串列-通用連結串列的實現Linux
- 單連結串列實現
- 【SpringBoot】結合Redis實現快取Spring BootRedis快取
- 快取 LRU 和 LFU 實現快取
- 一語中的:區塊鏈本質是雜湊連結串列區塊鏈
- 反轉連結串列、合併連結串列、樹的子結構
- 【資料結構】連結串列(單連結串列實現+詳解+原碼)資料結構
- FreeRTOS連結串列實現
- 實現雙向連結串列
- C#實現連結串列C#
- 連結串列面試題(七)---合併兩個有序連結串列面試題
- LRU cache快取簡單實現快取
- 資料結構系列之單連結串列實現一個簡單的LRU演算法資料結構演算法
- 資料結構與演算法分析-分離連結雜湊表的實現資料結構演算法
- 複雜連結串列的賦值賦值
- java實現連結串列反轉Java
- go 實現單向連結串列Go
- Go實現雙向連結串列Go
- Python實現單連結串列Python
- TypeScript 實現連結串列反轉TypeScript
- golang 實現連結串列爽不爽?Golang
- java實現雙向連結串列Java
- C語言實現連結串列C語言
- c++實現單連結串列C++
- js實現資料結構--單連結串列JS資料結構
- pta重排連結串列(一個很清晰的實現,完全模擬連結串列的實現)
- 【演算法-java實現】合併兩個有序連結串列演算法Java
- 連結串列-雙向連結串列
- 連結串列-迴圈連結串列