QVector、QList、QLinkedList类用法区别

QVector、QList、QLinkedList类用法区别

1. QVector 是提供动态数组的一个模板类。

QList 是提供列表的一个模板类。

QLinkedList 是提供链表的一个模板类。

2. QVector<T> QT的一个通用容器类,它在相邻的内存位置中存储items的值,并且提供基于索引(index-based)的快速访问。

QList<T> QT的一个通用容器类,它存储列表的值,并基于索引访问(index-based),同时,它插入和删除元素比较快(constant time)。

QLinkedList<T> QT的一个通用容器类,它存储列表的值,并基于迭代器访问,同时,它插入和删除元素比较快(constant time)。

3. QList<T>, QLinkedList<T>, QVector<T>and QVarLengthArray<T> 提供类似的功能,如下概况:

通常情况来说,QList是比较合适的选择,QList是基于索引访问(index-based)的API,它比QLinkedList {基于迭代器访问(iterator-based)的API}使用更加方便。

由于QList在内存中存储items的方式,它通常比QVector 更快(例如prepend()、insert()等)。而且,它只需更少的代码。

如果你需要使用一个真正的链表,并且保证使用迭代器(iterator)而不是索引(index)实现快速插入(constant time),可以使用QLinkedList

如果你需要items占据相邻内存空间,或者如果你的items比一个pointer更大并且你想要避免在插入时在堆上分配它们的话,可以使用QVector

如果你想要一个低级别的可变大小的数组,QVarLengthArray足矣。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值