Qt常用容器类

Qt为我们提供了一系列基于模板的容器类,来存储特定类型的项。这些容器类都是隐式共享的;被用作只读容器时,是线程安全的。

  与STL类似,也分为序列式容器和关联式容器。

  序列式容器有:QVector、QList、QLinkList、QStack、QQueue。对大部分程序来说QList都是一个很好的选择,快速添加操作;如果你想要确保元素占用连续内存,可以用QVector;而QStack和QQueue分别提供了LIFO和FIFO操作。

  关联式容器有:QMap、QMultiMap、QHash、QMultiHash、QSet。这些容器存储为Key-Value对,Multi表示支持一个Key关联多个Value;Hash容器通过hash函数而不是二分法查找,提供了更快速的查找操作;

  (1)QVector<T>:顺序表,最通用。这个容器类会在一块相邻的内存中存储一个给定类型的值的数组。在一个QVector的前端中间插入是非常慢的,因为这会导致大量现存的元素移动以为新的元素腾出位置。

  (2)QList<T>:链表,最通用。这个容器类维护一个指针数组,指针指向存储的给定类型的值。有两种存储方式:

  • 当元素占内存 <= 指针占内存时,且元素使用Q_DECLARE_TYPEINFO声明为Q_MOVABLE_TYPE或Q_PRIMITIVE_TYPE时,那么QList存储方式和QVector一样,都是数组形
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值