Qt容器小论

1 篇文章 0 订阅

Qt的容器继承自C++并进行了较多的优化和扩展,在此我分为 顺序容器 和 关联容器。

顺序容器类:QList QLinkedList QVector QStack 和 QQueue;

QList:*出境率比较高,戏多活好,例如QStringList继承自QList,适用于大量无序的插入或删除,另外QList在链表两端都预先分配了缓存,这样更就使得在QList的两端插入或删除元素变得更快;虽然是个链表,但是Qt添加了数组访问的形式,支持以下标索引的方式对数据进行访问,但不做非空检查,需要编程人员控制,使用时注意使用isEmpty()做非空判断,否则随时 ??? -----QList 用于添加 插入 替换 移动 删除数据项的函数有:insert() replace() removeAt() move() swap() append() prepend() removeFirst()和 removeLast()等。

QLinkedList: 貌似出镜率一般,链式链表,使用不连续的内存,基于迭代器访问,不支持数组下标方式访问,插入和删除元素的操作时间相同,其他无需多讲。

QVector:实力派,数组容器,c++ vector的Qt版本(多了对Qt数据类型的支持),用法与QList基本相同,成员函数也基本相同,但是实现方式和QList完全不同,QList在内存是不连续的,QVertor在内存中连续,So,QVector的访问效率更高(直接通过地址偏移),在尾部插入数据的效率更高,但是不适合运用于频繁在非尾部元素添加或删除元素的场景。

QStack:

QQueue:

关联容器类 QMap QMultiMap QHash QMultiHash 和 QSet;

…未完待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值