一.QCache
QCache在構造的時候指定了緩存中允許的最大成本,也就是如下構造函數中的參數maxCost。默認情況下,QCache's maxCost() 是100。
QCache(int maxCost = 100)
~QCache()
void clear()
bool contains(const Key &key) const
int count() const
bool insert(const Key &key, T *object, int cost = 1)
bool isEmpty() const
QList<Key> keys() const
int maxCost() const
T *object(const Key &key) const
bool remove(const Key &key)
void setMaxCost(int cost)
int size() const
T *take(const Key &key)
int totalCost() const
在向QCache中插入新的數據時,也可以指定對應的成本(insert的第三個參數);如果總成本大于允許的最大成本,就會自動將緩存中最古老的一些數據刪除掉,使得總成本仍然小于或者等于允許的最大成本。因此,如果考慮到緩存數據的成本,那么使用QCache就會比QHash和QMap方便很多。
如果要從QCache中刪除特定key的對象,請調用remove,這不僅把對象移出QCache,還將刪除該對象。如果您想在QCache不刪除對象的情況下從緩存中移除對象,請使用take()。這兩個特性和QHash、QMap是一樣的。
下面是一個Demo:
#include <QCache>
#inc