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

源地址: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

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

时间: 2024-10-17 01:55:20

QList和QVector等容器的区别:(转)的相关文章

QList和QVector使用

版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:QList和QVector使用     本文地址:http://techieliang.com/2017/12/563/ 文章目录 1. 介绍 2. QList使用  2.1. 简单范例  2.2. 其他函数  2.3. 迭代器风格 1. 介绍 QVector The QVector class is a template class that provides a dynamic arra

QList介绍(QList比QVector更快,这是由它们在内存中的存储方式决定的。QStringList是在QList的基础上针对字符串提供额外的函数。at()操作比操作符[]更快,因为它不需要深度复制)非常实用

FROM:http://apps.hi.baidu.com/share/detail/33517814 今天做项目时,需要用到QList来存储一组点.为此,我对QList类的说明进行了如下翻译. QList是一种表示链表的模板类.QList<T>是Qt的一种泛型容器类.它以链表方式存储一组值,并能对这组数据进行快速索引,还提供了快速插入和删除等操作.QList.QLinkedList和QVector提供的操作极其相似:* 对大多数操作来说,我们用QList就可以了.其API是基于索引(inde

(五)Docker镜像管理1之镜像和容器的区别

之所以在之前没有讲什么是镜像和容器是因为如果你没有一个最初的认识,那么你就很难理解镜像和容器以及它们的区别.我相信在前面一章中的讲述中,你应该稍有体会容器是基于镜像构建的,同时构建了容器之后如果不删除就会一直存在,而且我们下载的镜像还可以继续构建更多容器.构建容器并不是把镜像放进容器里,而是容器基于这个镜像产生,容器体积很小,镜像会大一点,你就算本地没有镜像也可以运行容器,因为它会从HUB中下载.在容器中的所有的修改都不会影响镜像. 先用通俗易懂但是不太严谨的例子说明一下,我们用光盘镜像安装一台

tomcat与jboss等容器的区别

1.JBoss 是 J2EE 应用服务器,而 Tomcat 只是一个 Servlet 容器,或者说是一个简单的 J2EE 应用服务器. JBoss 中的 Servlet 容器还是 Tomcat. 与 Tomcat 类似的 Servlet 容器有:Jetty(开源), Resin(开源)--.与 JBoss 类似的 J2EE 应用服务器有:Glassfish(开源), Geronimo(开源), WebLogic(商业), WebSphere(商业) 2.tomcat 是 JSP/Servlet 

C++中STL常用容器的区别(转)

我们常用到的STL容器有vector.list.deque.map.multimap.set和multiset,它们究竟有何区别,各自的优缺点是什么,为了更好的扬长避短,提高程序性能,在使用之前需要我们了解清楚. verctor vector类似于C语言中的数组,它维护一段连续的内存空间,具有固定的起始地址,因而能非常方便地进行随机存取,即 [] 操作符,但因为它的内存区域是连续的,所以在它中间插入或删除某个元素,需要复制并移动现有的元素.此外,当被插入的内存空间不够时,需要重新申请一块足够大的

web服务器、Web中间件和Web容器的区别

web服务器>web中间件>web容器 Tomcat(servlet容器)  是  Tomcat中间件  也是  Tomcat服务器 看了谢公子的csdn文章,让我彻底分清了这三者的区别. 因此我把这篇文章分享于此 : https://blog.csdn.net/qq_36119192/article/details/84501439 原文地址:https://www.cnblogs.com/-chenxs/p/11368017.html

各种容器的区别

堆.栈的区别及其应用 List.Set.Collection.Iterator ArrayList 的get方法会使用到索引?数组也有用到? System.out.println(c);调用toString方法 迭代器 ArrayList vs LinkedList HashSet vs TreeSet vs LinkedHashSet HashMap vs TreeMap vs LinkedHashMap

KVM虚拟化与容器的区别理解

1.KVM虚拟化是linux内核的虚拟化,提供了内核级别的虚拟进程管理,客户空间的程序QEMU-KVM可以提供资源清单和模拟设备,与KVM交互 QEMU-KVM--可以在宿主机器,建立网络(网桥交换机/NAT路由器[宿主机器作为路由]).客户虚拟机接入网络,常见接入方式:网桥,NAT 2.容器 操作系统虚拟化,隔离进程执行,指定进程执行的根工作目录. 宿主机器建立网络设备,容器进程接入 原文地址:https://www.cnblogs.com/justart/p/10354442.html

Spring IOC容器和Spring MVC IOC容器的区别

web.xml <context-param> <param-name>contextConfigLocation</param-name> <!-- 指定加载application配置文件 --> <param-value>classpath:spring/application.xml</param-value> </context-param> <listener> <listener-class&