码迷,mamicode.com
首页 > 其他好文 > 详细

QList和QVector等容器的区别:(转)

时间:2019-09-17 22:39:57      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:size   而且   运算符   数组   index   https   堆栈溢出   标签   指针   

源地址:https://blog.csdn.net/qq_33266987/article/details/53333373

Qlist、QVector 与 list、vector似乎不太类似

list插入删除很快,vector查询很快。

但QList 是基于index标签存储它的元素项在内存(虽然内存不连续,这点与list 是一样的),但可以使用 [ ]运算符, 也可以使用.at()操作。

QList和QVector等容器的区别:

1、大多数情况下可以用QList。像prepend()和insert()这种操作,通常QList比QVector快的多。这是因为QList是基于index标签存储它的元素项在内存中,比那种依赖iterator迭代的更快捷。而且你的代码也更少。

2、如果你需要一个真正的连接着的list,且需要保证一个固定插入耗时。那就用迭代器,而不是标签。使用QLinkedList();

3、如果你需要开辟连续的内存空间存储,或者你的元素远比一个指针大,这时你需要避免个别插入操作,出现堆栈溢出,这时候用QVector

4、如果你需要一个低层的可变数量大小的数组,用QVarLengthArray就够了。他可以预先在栈中分配已知长度大小的数组,如果超过这个长度,会在堆中继续存储。默认大小256

QList和QVector等容器的区别:(转)

标签:size   而且   运算符   数组   index   https   堆栈溢出   标签   指针   

原文地址:https://www.cnblogs.com/Stephen-Qin/p/11537390.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!