
Qt容器和数据类型
文章平均质量分 75
友善啊,朋友
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
QCache
一、描述QCache<Key, T> 定义了一个缓存,用于存储键值对。与其他一些基于键的数据结构(例如 QMap 或 QHash)相比,使用 QCache 的优势在于 QCache 会自动获取插入缓存中的对象的所有权,并在必要时删除它们以为新对象腾出空间。将对象插入缓存时,可以指定一个成本(cost),该成本与对象占用的内存量有一定的关系。当所有对象的成本总和 (totalCost()) 超过缓存的限制 (maxCost()) 时,QCache 开始删除缓存中的对象以保持在限制之下。原创 2021-09-20 02:29:04 · 2073 阅读 · 0 评论 -
QByteArray
一、描述QByteArray 是字节数组,可用于存储原始字节(包括 '\0')和传统的 8 位以 '\0' 结尾的字符串。使用 QByteArray 比使用 const char * 方便得多。在幕后,它始终确保数据后跟一个“\0”终止符,并使用隐式共享(copy-on-write)来减少内存使用并避免不必要的数据复制。除了 QByteArray,Qt 还提供了 QString 类来存储字符串数据。对于大多数用途,QString 是理想的字符串类。它将其内容理解为 Unicode 文本(使用 UTF原创 2021-09-19 18:30:18 · 41935 阅读 · 0 评论 -
QBitArray
一、描述QBitArray 是位数组,它提供对单个位的访问并提供对整个位数组起作用的运算符(AND、OR、XOR 和 NOT)。 它使用隐式共享(写时复制)来减少内存使用并避免不必要的数据复制。以下代码构造了一个包含 200 位初始化为 false (0) 的 QBitArray: QBitArray ba(200);要将位初始化为 true,请将 true 作为第二个参数传递给构造函数,或者稍后调用 fill()。QBitArray 使用基于 0 的索引,就像 C++ 数组一样。 要原创 2021-09-14 23:53:07 · 3680 阅读 · 0 评论 -
Qt容器:QStringList
一、描述QStringList 继承自 QList<QString>。 与 QList 一样,QStringList 也是隐式共享的。 它提供基于索引的快速访问以及快速插入和删除。将字符串列表作为值参数传递既快速又安全。二、成员函数1、bool contains(const QString &str, Qt::CaseSensitivity cs = Qt::CaseSensitive)如果列表包含字符串 str,则返回 true。Qt::CaseInsensiti原创 2021-07-25 14:02:55 · 12595 阅读 · 0 评论 -
QString
一、初始化QString1、最常用的初始化: QString str = "Hello";这实际上是使用QString::fromUtf8()将一个C语言风格的字符串:const char * p = "hello";转成QString。p可以为空,以下写法是合法的:#define debug qDebug()<<int main(int argc, char *argv[]){ QString s = nullptr; debug s..原创 2019-08-16 13:53:19 · 9609 阅读 · 0 评论 -
Qt容器:QQueue、QStack
QQueue一、描述QQueue<T> 是 Qt 的通用容器类之一,继承自QList。它为相同类型的项目实现了队列(先进先出)数据结构。QQueue 提供了三个函数,可以轻松实现 FIFO 语义:enqueue()、dequeue() 和 head()。只有使用这三个函数QQueue对象才有存在的意义。二、成员函数1、T dequeue()移除队列中的首项并返回它。与 QList::takeFirst() 相同。2、void enqueue(const T &am原创 2021-07-24 23:38:27 · 4014 阅读 · 0 评论 -
Qt容器:QSet
一、描述QSet<T> 是 Qt 的通用容器类之一。 它以未指定的顺序存储值并提供非常快速的值查找。二、成员函数QSet的API大部分和QList相同。这里仅列举QSet独有的成员函数。1、QSet<T> & intersect(const QSet<T> &other) QSet<T> & operator&=(const QSet<T> &other)从当前集合中删除ot...原创 2021-07-24 23:03:26 · 9373 阅读 · 0 评论 -
Qt容器:QMap
一、描述QMap<Key, T> 是 Qt 的通用容器类之一。 它存储(键,值)对并提供按键快速查找。二、成员函数1、QMap::const_iterator constFind(const Key &key)返回一个 const 迭代器,该迭代器指向map中具有 key 键的项目。如果地图不包含带键的项目,则该函数返回 constEnd()。 QMap<QString, int> map; map["one"] = 1; ma原创 2021-07-24 21:46:48 · 6092 阅读 · 0 评论 -
QVarLengthArray
C++ 语言不支持堆栈上的可变长度数组。以下代码将无法编译:int myfunc(int n){ int table[n + 1]; //报错 ... return table[n];}另一种方法是在堆上分配数组:int myfunc(int n){ int *table = new int[n + 1]; ... int ret = table[n]; delete[] table; return ret;}但是,原创 2021-07-24 17:23:15 · 962 阅读 · 0 评论 -
Qt容器:QList
一、描述QList<T> 是 Qt 的通用容器类之一。它将其项目存储在相邻的内存位置并提供基于索引的快速访问。QVector<T> 在 Qt 5 中曾经是一个不同的类,但在Qt6它是 QList 的一个别名。QList<T> 和 QVarLengthArray<T> 提供类似的 API 和功能。它们通常可以互换。QList 应该是默认首选。 QVarLengthArray 提供了一个在堆栈上保留空间的数组,但如果需要,可以动态地增长到堆上。用于通原创 2021-07-24 16:58:27 · 14724 阅读 · 0 评论 -
【翻译】Qt容器概述(Qt6)
一、描述Qt 库提供了一组通用的基于模板的容器类。这些类可用于存储指定类型的项目。这些容器类被设计为比 STL 容器更轻、更安全且更易于使用。如果您不熟悉 STL,或者更喜欢以“Qt 方式”做事,您可以使用这些类而不是 STL 类。容器类是隐式共享的,它们是可重入的,并且它们针对速度、低内存消耗和最小的内联代码扩展进行了优化,从而产生更小的可执行文件。此外,在所有用于访问它们的线程将它们用作只读容器的情况下,它们是线程安全的。二、容器类Qt 提供以下顺序容器:QList、QStack 、原创 2021-07-22 00:42:12 · 1950 阅读 · 0 评论