【摘要】 容器类
容器类通常是用于在内存中存储给定类型的许多项的模板类。 C++ 已经提供了很多容器,作为标准模板库(STL) 的一部分,它们都包含在标准的 C++ 库中。
Qt 提供了属于自己的容器类,所以在编写Qt程序时,既可以使用。容器也可以使用Qt容器。 Qt 容器的主要优点是它们在所有的平台上在运行时都表现得一致,并且它们都是隐含共享的。隐含共享(implicit …
容器类
容器类通常是用于在内存中存储给定类型的许多项的模板类。 C++ 已经提供了很多容器,作为标准模板库(STL) 的一部分,它们都包含在标准的 C++ 库中。
Qt 提供了属于自己的容器类,所以在编写Qt程序时,既可以使用。容器也可以使用Qt容器。 Qt 容器的主要优点是它们在所有的平台上在运行时都表现得一致,并且它们都是隐含共享的。隐含共享(implicit sharing),或者称为”写时复制”,是一个能够把整个容器作为不需要太多运行成本的值来传递的最优化过程。Qt容器的另一个主要特征就是易于使用的迭代器类,这是从Java 中得到的灵感,它们可以利用 QDataStream 变成数据流,而且它们通常可以使可执行文件中的代码量比相应的目工类中的要少。最后,在 Qt/Embedded Lìnux 支持的一些硬件平台上,通常只能使用Qt容器。
Qt既提供了诸如 QVector<T>、 QLinkedList<T>和 QLìst<T>等的连续容器,也提供了诸如 QMap<K,T>和 QHash<K ,T>等的关联容器二从概念上分析,顾名思义,连续容器连续地存储项,而关联容器则存储键值对。
Qt还提供了在任意容器上执行相关操作的通用算法。例如, qSort() 算法对一个连续容器进行排序, qBinaryFind()在经过排序的连续容器上执行一个二进制搜索。这些算法与白毛所提供的算法类似。
如果你已经非常熟悉STL容器并且在目标平台上STL是可用的,就没有必要再使用Qt容器了。有关STL类和函数的更多信息。
我们还将关注 QString、 QByteArra QVariant ,因为它们与容器有很多相似之处。QString咱是贯穿 Qt 应用编程接口的一个 16 Unicode 字符串, QByteArray 是一个用来存储原始二进制数据的8位字符数组, QVariant 类则可以存储绝大多数 C++ 和Qt值类型。
文章来源: blog.csdn.net,作者:qzh_1234,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/qq_36314864/article/details/116048249