<分区>
如果我想让下面的LRU缓存类模板化,我该怎么做呢?我反复收到以下错误:
Template argument for template type parameter must be a type; did you
forget 'typename'?"
这是我的代码:
class LRU{
int capacity;
public:
std::list<std::pair<int, int>> doubly_queue;
std::unordered_map<int, std::list<std::pair<int, int>>::iterator> elems;
LRU(int c);
int get(int key);
void put(int key, int val);
};
LRU::LRU(int c){
capacity = c;
}
如何使整个类模板化?
这是模板化后的代码:
template<class T>
class LRU{
int capacity;
public:
std::list<std::pair<T, T>> doubly_queue;
std::unordered_map<T, std::list<std::pair<T, T>>::iterator> elems;
LRU(T c);
int get(T key);
void put(T key, T val);
};