添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
*对大多数操作来说,我们用QList就可以了。其API是基于索引(index)的,因此用起来比QLinkedList更方便(QLinkedList的API是基于迭代器的)。QList比QVector更快,这是由它们在内存中的存储方式决定的。 * 需要使用QLinkedList的地方: * 需要使用QVector的地方:元素的储存位置彼此相邻。 QList表示为一组指向被存储元素的数组。(例外,如果T本身就是指针类型,或者是size不大于指针类型的基本类型,或者是Qt的共享类,那么QList会直接在指针数组中存储这些元素。)元素个数小于1000的QList能够很快地实现在链表中间插入操作,以及快速的查找操作。此外,由于QList在链表两端都预先分配了内存,因此实现prepend()和append()操作都很快。 注意:对于size比指针大的共享类,使用QVector会更好。 QList与C++中数组的索引方式一样,都是从0开始的。我们可以使用[]操作符来访问位于索引值处的元素。对于非const链表,操作符[]返回的是该元素的引用,并且返回值可以用途左操作数。 if ( list[0] == "Bob" ) 随后,我们使用insert函数,在列表的第1个位置处插入了字符串"orange",之后又使用removeAt函数,移除了第2个元素。通过使用Q List ,我们不仅可以快速地实现元素的插入、删除和查找等功能,还可以避免手动管理内存等问题,从而提高开发效率。需要注意的是,由于Q List 是基于数组实现的,因此在插入、删除元素时,可能会导致数组重新分配内存空间,从而影响性能。因此,在实际使用中,我们应该尽量减少这类操作。Qt中,我们常用的容器之一便是Q List ,它是一个基于数组实现的动态数组容器。 Q List 是一个非常快的经典队列:项目被附加push() ,而最旧的等待项目则被shift()检索。 项目可以与前面加上unshift ; 最后一项可以通过pop检索。 Q List 被实现为可调整大小的循环缓冲区,映射到Array中。 考虑了remove()方法,但是它给快速通道带来的好处很少,从而大大降低了它的速度。 请参阅下面的讨论。 var List = require('q list '); var q = new List (); q.append(1); q.append(2); q.shift(); // => 1 随附的基准脚本可测量推送,移位和推送/移位对的速度(此数据结构的预期用例)。 (与3.5GHz AMD Phenom II B55上的node-v5.10.1配合使用) node benchma 1 如下错误代码,当sl的大小为1,而使用sl.at(i) (i&gt;1)时,程序会出现奔溃。     QString List sl; sl&lt;&lt;"11";     qDebug()&lt;&lt;sl.count()&lt;&lt;sl.at(2);结果程序奔溃2 而使用如下代码不会出现奔溃,比较安全,在写代码或者项目的时候要注意尽量用value代替at更安全。  ... 现在就可以使用foreach(int i, list )这样就可以遍历整个容器了 Q List int> list ; list 2416; foreach(int str, list ) qDe 1、Q List 介绍 介绍个锤子,有点累,摊牌了,这篇是水的,但是我觉得质量很高,因为我自己写不了这么详细,对,感谢某不知名网站编程指南,我直接白嫖,这篇实在是太多了,说句实话日常使用不久存个指针,然后遍历查找之类的,怎么能写这么多! 在开始讲解 Q List 之前,我们先明确一下 Qt 数据容器能存储什么,不能存储什么。 Qt 提供的数据容器都是模板类,构造时要带数据类型,比如下面这句定义整型数列表: Q List <int> integer List ; Qt 数据容器有支持的数据类型,也有不支持的类型 Q List 是一种表示链表的模板类。 Q List 是Qt的一种泛型容器类。它以链表方式存储一组值,并能对这组数据进行快速索引,还提供了快速插入和删除等操作。 Q List 、QLinked List 和QVector提供的操作极其相似: *对大多数操作来说,我们用Q List 就可以了。其API是基于索引(index)的,因此用起来比QLinked List 更方便(QLinked List 的API是基于迭代器的 Q List <T> 是 Qt 的通用容器类之一。它将其项目存储在相邻的内存位置并提供基于索引的快速访问。QVector<T> 在 Qt 5 中曾经是一个不同的类,但在Qt6它是 Q List 的一个别名。 Q List <T> 和 QVarLengthArray<T> 提供类似的 API 和功能。它们通常可以互换。 Q List 应该是默认首选。 QVarLengthArray 提供了一个在堆栈上保留空间的数组,但如果需要,可以动态地增长到堆上。用于通 Q List 两种存储方式: 1)元素占用空间<指针占用空间(sizeof(T)<sizeof(void*)),并且元素已经使用Q_DECLARE_TYPEINFO声明为 Q_MOVABLE_TYPE 或 Q_PRIMITIVE_TYPE 时,Q List 以数组形式存储,QVector、QVarLengthArray一样; 2)元素占用空间>指针占用空间时,Q List 会将每个元素new到堆上,即 Q List <T> 表示为 Q List <T*&gt