简介
本文介绍了QT框架中可用于缓存的几个数据类型各自的特点;通过本文读者可以了解到为什么有QHash和QMap,还设计了QCache和QContiguousCache?
目录
QHash和QMap有哪些不足?
QCache有什么优点?
QContiguousCache有什么优点?
【QT付费视频课程】如何使用Qt WebEngine开发一款Web浏览器软件?
正文
QHash和QMap有哪些不足?
对于key-value类型的数据在内存中的表达,QT框架中提供了QHash和QMap,QMultiHash、QMultiMap,C++1X中也有类似的数据类型。在一些对缓存没有什么复杂需求的情况下,这些类型往往可以用来直接当作缓存类型来使用。如果对缓存有略微复杂一点的需求,直接使用QHash和QMap就搞不定了。
QT框架之QHash
QT框架之QMap
QCache有什么优点?
QCache在构造的时候指定了缓存中允许的最大成本,也就是如下构造函数中的参数maxCost。
QT框架之QCache
在向QCache中插入新的数据时,也可以指定对应的成本;如果总成本大于允许的最大成本,就会自动将缓存中最古老的一些数据删除掉,使得总成本仍然小于或者等于允许的最大成本。因此,如果考虑到缓存数据的成本,那么使用QCache就会比QHash和QMap方便很多。
QContiguousCache有什么优点?
QContiguousCache这种类型用于表示一个索引序号连续的缓存,也就是无论怎么插入和删除,操作之后缓存中剩下的元素的索引序号必须保持连续,否则就会操作失败。这个条件使得QContiguousCache的删除操作显得很特别,比如只能删除最前面和最后面的那个元素,而无法删除中间的元素。插入时则可以在任意位置插入新元素,但是插入时指定的元素索引序号必须使得插入之后缓存中所有元素的索引序号依然是连续的,否则插入失败。
另外,如果QContiguousCache已经满了,那么当在一端插入一个数据时,在对应的另一端就会自动删除一个数据。
QT框架之QContiguousCache
QT框架之QContiguousCache
QT框架之QContiguousCache
QT框架之QContiguousCache
总结
本文介绍了QT框架中QHash和QMap,QCache和QContiguousCache这些可用于缓存的数据类型的各自的特点。
【QT付费视频课程】如何使用Qt WebEngine开发一款Web浏览器软件?
如果您认为这篇文章对您有所帮助,请您一定立即点赞+喜欢+收藏,本文作者将能从您的点赞+喜欢+收藏中获取到创作新的好文章的动力。如果您认为作者写的文章还有一些参考价值,您也可以关注这篇文章的作者。