QList类

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

QList 类是提供动态数组的模板类。


Header:#include <QList>
CMake:find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake:QT += core
Inherited By:

QBluetoothServiceInfo::Alternative

QBluetoothServiceInfo::Sequence

QByteArrayList

QItemSelection

QMqttUserProperties

QNdefMessage

QPolygon

QPolygonF

QQueue

QSignalSpy

QStack

QStringList

QTestEventList

QVector

QVulkanInfoVector

QXmlStreamAttributes

Note: 此类中的所有函数都是可重入的。


【详细描述】

QList<T>是Qt的通用容器类。它将其项目存储在相邻的内存位置,并提供基于索引的快速访问。QVector<T>曾经是 Qt 5 中的一个不同类,但现在是 QList 的简单别名。

QList<T> 和 QVarLengthArray<T> 提供类似的 API 和功能。它们通常是可以互换的,但会带来性能后果。以下是用例概述:

  • QList 应该是您的默认首选。
  • QVarLengthArray提供一个数组,该数组在堆栈上预留空间,但可以在需要时动态增长到堆上。它非常适合用于通常很小的短寿命容器。
  • 如果您需要一个真正的链表,它保证在列表中间持续插入,并使用迭代器而不是索引,请使用标准库std::list。

 注意: QList和QVarLengthArray都保证了c兼容的阵列布局。Qt5中的QList并不总是具有与c兼容的数组布局,我们经常建议使用QVector来获得更可预测的性能。在Qt 6中已经不再是这样了,这两个类现在共享一个实现,可以互换使用。

下面是一个存储整数的QList和一个存储QString值的QList的例子:

QList<int> integerList;
QList<QString> stringList;

QList 将其项目存储在连续内存数组中。通常,列表是以初始大小创建的。例如,以下代码构造具有 200 个元素的 QList:

QList<QString> list(200);

这些元素会自动使用迭代容器default-constructed value。如果要使用其他值初始化列表,请将该值作为第二个参数传递给构造函数:

QList<QString> list(200, "Pass");

您也可以随时调用fill()来使用值填充列表。QList 使用从 0 开始的索引,就像 C++ 数组一样。若要访问特定索引位置的项,可以使用 operator[]()。在非常量列表上,operator[]()返回对可在赋值左侧使用的项的引用:

if (list[0] == "Liz")
    list[0] = "Elizabeth";

对于只读访问,另一种语法是使用at():

for (qsizetype i = 0; i < list.size(); ++i) {
    if (list.at(i) == "Alfonso")
        cout << "Found Alfonso at position " << i << endl;
}

at()可以比operator[]()快,因为它永远不会导致深拷贝 deep copy 发生。

访问存储在 QList 中的数据的另一种方法是调用 data()。该函数返回指向列表中第一项的指针。您可以使用指针直接访问和修改存储在列表中的元素。如果需要将 QList 传递给接受普通 C++ 数组的函数,则指针也很有用。

如果要在列表中查找特定值的所有匹配项,请使用 indexOf() 或 lastIndexOf()。前者从给定的索引位置开始向前搜索,后者向后搜索。如果找到匹配项,则两者都返回匹配项的索引,否则,它们返回 -1。例如:

qsizetype i = list.indexOf("Harumi");
if (i != -1)
    cout << "First occurrence of Harumi is at position " << i << endl;

如果只想检查列表是否包含特定值,请使用contains()。如果要了解特定值在列表中出现的次数,请使用 count()。

QList 提供了以下基本功能来添加、移动和删除项目:insert(), replace(), remove(), prepend(), append()。 除了append(), prepend()和replace()之外,对于大型列表,这些函数 (线性时间linear time)可能会很慢,因为它们需要将列表中的许多项目在内存中移动一个位置。如果您想要一个在中间提供快速插入/删除的容器类,请改用 std::list。

与普通 C++ 数组不同,QList 可以随时通过调用resize()来调整大小。如果新大小大于旧大小,则 QList 可能需要重新分配整个列表。QList 试图通过预分配两倍于实际数据需求的内存来减少重新分配的次数。

如果你正在逐步构建一个 QList,并且提前知道它将包含大约多少个元素,你可以调用reserve(),要求 QList 预分配一定数量的内存。您还可以调用capacity()来了解 QList 实际分配了多少内存。

请注意,因为隐式共享implicit sharing,使用非常量运算符和函数可能会导致 QList 对数据进行深度复制 。

QList 的值类型必须是assignable data type(可分配数据类型),这涵盖了大多数常用的数据类型。

编译器不允许您将QWidget存储为值;但可以存储QWidget *。一些函数有额外的要求,例如indexOf() 和 lastIndexOf() 期望值类型支持operator==()。这些需求是根据功能来记录的。

有关遍历这些项的信息,请参见Iterating over Containers

除了QList之外,Qt还提供了QVarLengthArray,这是一个非常低级的类,几乎没有针对速度进行优化的功能。

有关将 Qt 容器与 STL 容器进行比较的讨论,请参阅:Understand the Qt Containers

 最大空间和内存不足的情况

QList 的最大空间取决于体系结构。大多数 64 位系统可以分配超过 2 GB 的内存,典型限制为 2^63 字节。实际值还取决于管理数据块所需的开销。因此,在 32 位平台上,最大大小为 2 GB 减去开销,在 64 位平台上,最大大小为 2^63 字节减去开销。QList 中可以存储的元素数是此最大空间除以存储元素的尺寸。

当内存分配失败时,QList 使用宏Q_CHECK_PTR ,如果应用程序在异常std::bad_alloc支持下编译,则会引发异常。如果禁用异常,则内存不足是未定义的行为。

请注意,操作系统可能会对持有大量分配内存的应用程序施加进一步的限制,尤其是大型连续块。这些细节和任何缓解措施都超出了Qt API考虑的范围。


【公共类型】

classconst_iteratorQListQStack提供STL样式的常量迭代器。
classiterator

QListQStack提供STL样式的非常量迭代器。

ConstIteratorQt样式的常量迭代器,与QList::const_iterator同义。
IteratorQt样式的常量非迭代器,与QList::iterator同义。
const_pointer提供了与STL的兼容性。
const_reference提供了与STL的兼容性。
const_reverse_iterator

提供STL 样式的常量反向迭代器。

警告: 隐式共享容器上迭代器的工作方式与 STL 迭代器不同。应避免迭代器在容器上处于活动状态时复制该容器。

difference_type提供了与STL的兼容性。
parameter_type/
pointer提供了与STL的兼容性。
reference提供了与STL的兼容性。
reverse_iterator提供STL 样式的非常量反向迭代器。(警告同上)
rvalue_ref/
size_type提供了与STL的兼容性。
value_type提供了与STL的兼容性。

【公有函数】

特别说明:

1. 以下函数中,返回的指针或迭代器在分离时或修改时会失效。

2. 涉及比较的函数(例如:搜索)要求值类型具有operator==()的实现。

3. QList为兼容STL提供了功能等价的函数,以下备注为:STL兼容。

4. 涉及元素删除的函数,都不会减少分配的内存量,要减少额外的容量和尽可能多的内存,调用 squeeze()。

空QList。

QList()
size个元素的QList。QList(qsizetype size)
size个元素都用value初始化。QList(qsizetype size, QList::parameter_type value)
args是std::initializer_list,用它初始化QList。QList(std::initializer_list<T> args)
用迭代器范围[firstlast)内的元素构造QList。QList(InputIterator first, InputIterator last)
构造other的副本。返回非常快,因为QList 是隐式共享的,如果修改共享实例,才在写入时真正复制该实例,这需要线性时间。QList(const QList<T> &other)
移动构造一个QList实例,使其与other指向同一对象。QList(QList<T> &&other)
析构。~QList()
voidappend(QList::parameter_type value)
在QList末尾插入value。与调用 resize(size() + 1)并在最后写入新值相同,因为通常分配的内存比需要的多,所以操作速度较快。
voidappend(QList::rvalue_ref value)
同上。
voidappend(const QList<T> &value)
将value列表的项追加到此列表的末尾。
voidappend(QList<T> &&value)
将value列表的项移动到此列表的末尾。
QList<T> &assign(qsizetype n, QList::parameter_type t)
用n个t的副本替换此QList的内容,此时QList的大小将等于n。
当n超过QList的容量或QList被共享时,此函数才会分配内存。
QList<T> &assign(InputIterator first, InputIterator last)
将OList的内容替换为迭代器范围 [first, last)内元素的副本,此时QList的大小等于[first, last)范围内的元素。当范围内的元素数量超过QList的容量或QList被共享时,此函数才会分配内存。
QList<T> &assign(std::initializer_list<T> l)

用/元素的副本替换QList的内容,QList大小将等于/中的元素数量。

当/内的元素数量超过QList的容量或QList被共享时,此函数才会分配内存。

QList::const_referenceat(qsizetype i) const
返回QList索引位置 i 的项 (0 <= i < size())。
QList::referenceback()
STL兼容。等价于 last()。
QList::const_referenceback() const
重载的常版本。
QList::iteratorbegin()

返回指向QList第一项的STL-style iterator

QList::const_iteratorbegin() const
重载的常版本。
qsizetypecapacity() const

无需强制重新分配内存前提下,返回可以在QList中存储的最大项数。

这个函数的唯一目的是提供一种微调内存使用的方法。通常很少需要调用此函数。

QList::const_iteratorcbegin() const

返回指向QList第一项的常量STL-style iterator

QList::const_iteratorcend() const

返回指向QList最后一项的常量STL-style iterator

voidclear()

从QList删除所有元素。如果未共享此QList,则保留 capacity() ,使用squeeze()来减少多余的容量。

注意:5.7之前的 Qt 版本中,此函数释放了QList使用的内存,而不是保留容量。

QList::const_iteratorconstBegin() const

返回指向QList第一项的常量STL-style iterator

QList::const_pointerconstData() const

返回指向QList存储的数据的常量指针。这个指针可用于访问QList中的项。

此函数最常见的用法的是将QList传递给接受普通C++数组的函数。

QList::const_iteratorconstEnd() const
返回一个指向QList最后一项的常量 STL-style iterator
const T &constFirst() const
返回对QList第一项的常量引用。此函数假定列表不为空。
const T &constLast() const
返回对QList最后一项的常量引用。此函数假定列表不为空。
boolcontains(const AT &value) const
如果QList包含value返回true,否则返回false。
qsizetypecount(const AT &value) const
返回QList中value出现的次数。
qsizetypecount() const
重载,返回元素个数,等价于size()。
QList::const_reverse_iteratorcrbegin() const
返回一个STL样式的常量反向迭代器,该迭代器以相反的顺序指向QList的第一项。
QList::const_reverse_iteratorcrend() const
返回一个STL样式的常量反向迭代器,该迭代器以相反的顺序指向QList的最后一项之后。
QList::pointerdata()

返回指向存储在QList中的数据的指针。指针可用于访问和修改列表中的项。

此函数常见用途是将QList传递给接受普通 C++ 数组的函数。

QList::const_pointerdata() const
重载的常版本。
QList::iteratoremplace(qsizetype i, Args &&... args)

使用args作为构造的参数,在 i 位置插入新元素来扩展容器,这个新元素是就地构造的,返回新元素的迭代器。

QList::iteratoremplace(QList::const_iterator before, Args &&... args)

在 before 迭代器指向的项前面创建一个新元素。这个新元素是就地构造的,args 用作其构造的参数。

返回新元素的迭代器。

QList::referenceemplaceBack(Args &&... args)
QList::referenceemplace_back(Args &&... args)
将一个新元素添加到QList容器的末尾。这个新元素是就地构造的,args用作其构造的参数。
boolempty() const
STL兼容。等价于 isEmpty(),如果列表为空则返回true,否则返回false。
QList::iteratorend()
返回列表中最后一项之后(尾后)的指针。
QList::const_iteratorend() const
这是一个重载函数。
boolendsWith(QList::parameter_type value) const
如果QList不为空,并且其最后一项等于value,则返回true,否则返回false。
QList::iteratorerase(QList::const_iterator pos)

从QList删除迭代器pos指向的项,并返回QList中的下一项(可能是end())的迭代器。

注意:当QList没有隐式共享时,此函数只使指定位置或之后的迭代器无效。

QList::iteratorerase(QList::const_iterator begin, QList::const_iterator end)

删除begin—end(但不包括)中的所有元素。返回调用之前end项的相同迭代器。

注意:同上。

QList<T> &fill(QList::parameter_type value, qsizetype size = -1)

分配value值给QList的所有项目。如果size不是默认值 -1,则列表大小将提前调整为size。

T &first()
返回对QList第一项的引用。此函数假定QList不为空。
const T &first() const
重载的常版本。
QList<T>first(qsizetype n) const
返回一个包含该QList前n个元素的子列表。注意:n < 0 或 n > size()的行为未定义。
QList::referencefront()
STL兼容。等价于first()。
QList::const_referencefront() const
重载的常版本。
qsizetypeindexOf(const AT &value, qsizetype from = 0) const

返回QList中第一个出现的value值的索引位置,从中的索引位置from向前搜索。如果没有项匹配,则返回-1。

QList::iteratorinsert(qsizetype i, QList::parameter_type value)
QList::iteratorinsert(qsizetype i, QList::rvalue_ref value)

在QList的索引位置 i 处插入value值的副本。如果 i 为 0,则该值将追加到列表前面。如果 i 为size(),则该值将追加到列表中。

对于大型列表,此操作可能很慢 (线性时间),因为它需要将索引处和之后的所有项在内存中再移动一个位置。如果需要提供快速 insert() 函数的容器类,请改用std::list。

QList::iteratorinsert(qsizetype i, qsizetype count, QList::parameter_type value)

在QList的索引位置 i 处插入count个value值的副本。

QList::iteratorinsert(QList::const_iterator before, qsizetype count, QList::parameter_type value)
在迭代器before指向的项前面插入count个value值的副本。返回指向第一个插入项的迭代器。
QList::iteratorinsert(QList::const_iterator before, QList::rvalue_ref value)
QList::iteratorinsert(QList::const_iterator before, QList::parameter_type value)
插入value到迭代器before指向的项前面。返回指向插入项的迭代器。
boolisEmpty() const
QList大小为 0返回true,否则返回false。
T &last()
返回对QList最后一项的引用。此函数假定QList不为空。
const T &last() const
重载的常版本。
QList<T>last(qsizetype n) const
返回包含QList最后n个元素的子列表。 n < 0或n > size()的行为未定义。
qsizetypelastIndexOf(const AT &value, qsizetype from = -1) const

返回QList中value值的索引位置,从from开始向前搜索,如果 from为-1(默认),搜索从最后一项开始。如果没有找到匹配项,则返回-1。

qsizetypelength() const
size() 和count()相同。
QList<T>mid(qsizetype pos, qsizetype length = -1) const
返回一个子列表,其中包含QList中的元素,从位置pos开始。如果长度为-1(默认值),则包含pos之后的所有元素;否则包括length个元素(或小于length的所有剩余元素)。
voidmove(qsizetype from, qsizetype to)
将索引位置from处的项目从索引位置移动到to
voidpop_back()
STL兼容。等价于removeLast()。
voidpop_front()
STL兼容。等价于removeFirst()。
voidprepend(QList::rvalue_ref value)
voidprepend(QList::parameter_type value)

插入到QList的开头,等价于list.insert(0, value)。

通常此操作相对较快(摊销固定时间),QList能够在列表数据的开头分配额外的内存,并沿着这个方向增长,而此无需重新分配或移动每个操作上的数据。如果您想要一个保证恒定时间开销的容器,请使用std::list,否则QList更佳。

voidpush_back(QList::parameter_type value)
voidpush_back(QList::rvalue_ref value)
STL兼容。它等效于 append()。
voidpush_front(QList::rvalue_ref value)
voidpush_front(QList::parameter_type value)
STL兼容。等价于 prepend()。
QList::reverse_iteratorrbegin()
返回指向列表中第一项的Stl样式的反向迭代器。
QList::const_reverse_iteratorrbegin() const
重载的常版本。
voidremove(qsizetype i, qsizetype n = 1)

从QList中删除n个元素,从索引位置i开始。

qsizetyperemoveAll(const AT &t)
从QList中删除所有值等于t的元素。返回删除元素的数量。
voidremoveAt(qsizetype i)
删除索引位置 i 的元素。相当于 remove(i);
voidremoveFirst()
删除QList中的第一项。此函数等效于remove(i)。该列表不能为空,如果列表可能为空,请在此函数之前调用isEmpty()检查。
qsizetyperemoveIf(Predicate pred)
从列表中删除谓词 pred 返回 true 的所有元素。返回删除的元素数量(如果有)。
voidremoveLast()
删除QList中的最后一项。此函数等效于remove(size() - 1)。

该列表不能为空,如果列表可能为空,请在此函数之前调用isEmpty()检查。

boolremoveOne(const AT &t)
从QList中删除等于 t 的第一个元素。返回是否有元素被删除。
QList::reverse_iteratorrend()
返回一个STL-style的反向迭代器,该迭代器指向列表中的最后一项之后。
QList::const_reverse_iteratorrend() const
重载的常版本。
voidreplace(qsizetype i, QList::parameter_type value)
voidreplace(qsizetype i, QList::rvalue_ref value)
voidreserve(qsizetype size)

尝试分配size个元素的内存。

如果事先知道QList将有多大,则应该调用这个函数,以防止重新分配和内存碎片。如果您经常调整QList大小,也可以通过这个函数获得更好的性能。

如果对需要多少空间有疑问,通常最好使用一个上限作为大小,或者使用高于最有可能的大小。如果大小被低估,一旦超过保留大小,QList将根据需要增长,这可能导致比您高估的尺寸更大的内存分配,并花费额外的时间。

警告:reserve()仅分配内存,但不会更改QList的size。

voidresize(qsizetype size)
voidresize(qsizetype size, QList::parameter_type c)

将列表的大小设置为 size 。如果大于当前大小,则将原有元素添加到末尾,新元素使用默认构造值default-constructed value或 c 进行初始化。如果小于当前大小,则从末尾删除元素。

voidshrink_to_fit()
STL兼容。等价于释放冗余内存 squeeze()。
qsizetypesize() const
返回QList的项数。
QList<T>sliced(qsizetype pos, qsizetype n) const
返回一个包含n个元素的子列表,从位置pos开始。pos < 0, n < 0或 pos + n > size()的行为未定义。
QList<T>sliced(qsizetype pos) const

返回一个子列表,从位置pos开始直到最后。pos < 0或 pos > size()的行为未定义。

voidsqueeze()

释放存储项不需要的冗余内存。

这个函数的唯一目的是提供一种微调内存使用的方法。通常很少需要调用此函数。

boolstartsWith(QList::parameter_type value) const
如果此列表不为空,并且其第一项等于value,则返回true,否则返回false。
voidswap(QList<T> &other)
交换other列表与此列表。此操作非常快且不会失败。
voidswapItemsAt(qsizetype i, qsizetype j)
将i位置的项与j位置的项交换。此函数假定i和j都大于等于0并小于size。为避免失败,使用前请测试i,j。
TtakeAt(qsizetype i)
删除索引位置 i 的元素并返回它。相当于:T t = at(i); remove(i); return t;
QList::value_typetakeFirst()

删除列表中的第一项并返回它。此函数假定列表不为空。为避免失败,请在调用此函数之前调用isEmpty()。

QList::value_typetakeLast()

删除列表中的最后一项并返回它。此函数假定列表不为空。为避免失败,请在调用此函数之前调用isEmpty()。如果不使用返回值,则removeLast() 效率更高。

Tvalue(qsizetype i) const
返回列表中索引 i 位置的值。如果索引越界,则该函数返回一个 default-constructed value(默认构造值),如果您确定在边界内,则可以改用at(),这会快一些。
Tvalue(qsizetype i, QList::parameter_type defaultValue) const
重载的常版本。如果索引越界,则该函数返回未定义的值。
booloperator!=(const QList<T> &other) const
QList<T>operator+(const QList<T> &other) const &
QList<T>operator+(const QList<T> &other) &&
QList<T>operator+(QList<T> &&other) const &
QList<T>operator+(QList<T> &&other) &&
QList<T> &operator+=(const QList<T> &other)
QList<T> &operator+=(QList<T> &&other)
QList<T> &operator+=(QList::parameter_type value)
QList<T> &operator+=(QList::rvalue_ref value)
booloperator<(const QList<T> &other) const
QList<T> &operator<<(QList::parameter_type value)
QList<T> &operator<<(const QList<T> &other)
QList<T> &operator<<(QList<T> &&other)
QList<T> &operator<<(QList::rvalue_ref value)
booloperator<=(const QList<T> &other) const
QList<T> &operator=(std::initializer_list<T> args)
QList<T> &operator=(const QList<T> &other)
QList<T> &operator=(QList<T> &&other)
booloperator==(const QList<T> &other) const
booloperator>(const QList<T> &other) const
booloperator>=(const QList<T> &other) const
QList::referenceoperator[](qsizetype i)
QList::const_referenceoperator[](qsizetype i) const
qsizetypeerase(QList<T> &list, const AT &t)
qsizetypeerase_if(QList<T> &list, Predicate pred)
size_tqHash(const QList<T> &key, size_t seed = 0)
QDataStream &operator<<(QDataStream &out, const QList<T> &list)
QDataStream &operator>>(QDataStream &in, QList<T> &list)

<<< 返回根页面

三、Qt常用容器之QList 1、QList介绍 介绍个锤子,有点累,摊牌了,这篇是水的,但是我觉得质量很高,因为我自己写不了这么详细,对,感谢某不知名网站编程指南,我直接白嫖,这篇实在是太多了,说句实话日常使用不久存个指针,然后遍历查找之的,怎么能写这么多! 在开始讲解 QList 之前,我们先明确一下 Qt 数据容器能存储什么,不能存储什么。 Qt 提供的数据容器都是模板,构造时要带数据型,比如下面这句定义整型数列表: QList<int> integerList; Qt 数据容器有支持的数据型,也有不支持的 阅读详情

相关推荐

QT QList<T>介绍与应用、详解、使用说明、官方手册翻译

文章目录1. 简介2. 使用示例3. 官方手册4. Member Function Documentation 1. 简介 QList<T>是目前最常用的容器 。它存储了给定型的值的一个列表,而这些值可以通过索引访问。在内部,QList使用数组来实现,一确保进行快速的基于索引的访问。可以使用QList::append()和QList::prepend()在列表的两端添加项目,也可以使用QList::insert()在列表的中间插入项目。常用的QStringList继承自QList<QS

超级大洋葱的博客 6万+

Qt中的QList详解

QListQt框架中的一个常用容器,用于存储和操作列表数据。上述代码创建了一个QList对象stringList,用于存储字符串型的数据。在列表中添加了三个水果名称,并输出了列表的大小、是否包含"Banana"以及遍历列表的元素。你可以使用QList来存储和操作列表数据,包括插入、删除、查找等操作。上述代码创建了一个QList对象,用于存储整数型的数据。上述代码将intList列表中索引为1的元素赋值给变量value。上述代码将整数15插入到intList列表的索引为1的位置。

TechO_O的博客 833

QtQList详解

1、QList是一种表示链表的模板。 2、QListQt的一种泛型容器。它以链表方式存储一组值,并能对这组数据进行快速索引,还提供了快速插入和删除等操作。 3、QList、QLinkedList和QVector提供的操作极其相似: * 对大多数操作来说,我们用QList就可以了。其API是基于索引(index)的,因此用起来比QLinkedList更方便(QLinkedList...

zxrs_job的博客 7万+

Qt QList 详解:从底层原理到高级用法

Qlist

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 1万+

Qt | QList详解

QListQt框架中的一种泛型容器,虽然是以数组列表(array-list)的形式实现的,但是在其前或后添加数据非常块。提供快速的基于索引的访问、插入和删除操作。Header:qmake:QT += core内存布局:QList内部可能以数组或指针数组的形式表示,具体取决于元素型的大小和是否可移动。“是否可移动”通常指的是元素型是否支持移动构造函数或移动赋值运算符。内存分配:QList在内部数组的两端预分配额外空间,以允许列表两端的快速增长。型要求:QList的值型必须是可赋值的效率。

zwcslj的博客 5327

QT QList & QLinkedList

QList<T>是最常用的容器,它存储给定数据型T的一列数值。(1)如果T是一个指针型或指针大小的基本型(即该基本型占有的字节数和指针型占有的字节数相同),QList<T>会将数值直接存储在它的数组中。,该数组存储的指针指向QList<T>存储的列表项的内容。// 程序中使用花括弧“{”和“}”括起来的作用域表明,此时QList<T>保存了对象的一个复制。(2)如果QList<T>存储对象的指针,则该指针指向实际存储的对象。对于不同的数据型,QList<T>采取不同的存储策略,

2301_79503228的博客 465

QVector、QList、QLinkedList用法区别

QVector、QList、QLinkedList用法区别 1. QVector 是提供动态数组的一个模板QList 是提供列表的一个模板。 QLinkedList 是提供链表的一个模板。 2. QVector<T> 是QT的一个通用容器,它在相邻的内存位置中存储items的值,并且提供基于索引(index-based)的快速访问。 QList<T>...

《好好先生》专栏 1799

QList介绍

QList是一种表示链表的模板QListQt的一种泛型容器。它以链表方式存储一组值,并能对这组数据进行快速索引,还提供了快速插入和删除等操作。QList、QLinkedList和QVector提供的操作极其相似:* 对大多数操作来说,我们用QList就可以了。其API是基于索引(index)的,因此用起来比QLinkedList更方便(QLinkedList的API是基于迭代器的)。QList比QVector更快,这是由它们在内存中的存储方式决定的。* 需要使用QLinkedList的地方:* 需要

auragreen的专栏 4万+

QTQList的使用

QListQt中的一个模板,用于存储各种型的数据。QList提供了一组丰富的方法来访问和操作数据,使得数据的管理变得更加简单和高效。QListQt框架中的一个重要,它提供了一种方便的方式来存储和操作数据。在本文中,我们将介绍如何使用QList以及一些常见的用法和示例代码。通过使用QList,我们可以方便地存储和操作数据,使得代码编写更加简单和高效。QList是一个模板,可以根据需要存储不同型的数据。可以使用at()方法通过索引获取列表中的元素,索引从0开始计数。QTQList的使用。

ByteEchoX的博客 391

43-QList& QLinkedList

一QLinkedList。

m0_74216169的博客 1020

Qt笔记10【QList

使用了C++中模板的方法。

AimHang 276

QT」顺序容器QList 通用列表

QListQt框架中提供的一个基于模板的通用容器,它用于存储同一型的元素序列。QList是一个动态数组,能够根据需要自动调整大小,且支持快速的随机访问。与QVector相比,QList在底层实现上使用了链表结构(虽然具体实现细节可能因Qt版本而异,但QList通常被认为在插入和删除操作上性能更优,而在随机访问上可能稍逊于QVector)。QListQt容器库中的一个重要成员,广泛应用于图形界面编程、数据处理等场景。QList提供了多种构造函数,允许以不同的方式创建和初始化QList对象。

何曾参静谧的博客 2592

QT-【常用容器】-QList& QLinkedList

QList 和 QLinkedList 是 Qt 框架中非常重要的容器,各自具有不同的优缺点和适用场景。QList 适合于需要频繁随机访问的情况,而 QLinkedList 更适合于频繁插入和删除的场景。

小王爱吃月亮糖的博客 1672

QList 用法

1. QLinkedList 是提供列表的一个模板。          2. QListQT的一个通用容器,它存储列表的值,并基于索引访问(index-based),同时,它插入和删除元素比较快(constant time)。          3. QList, QLinkedList, and QVector 提供似的功能,如下概况:               ①

navyqh的博客 5210
上一篇: QGridLayout类
下一篇: QGraphicsSceneEvent
floatbit
博客等级 码龄24年 460粉丝 47原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值