QList 类是提供动态数组的模板类。 更多...
头: | #include <QList> |
CMake: |
find_package(Qt6 COMPONENTS Core REQUIRED)
target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
继承者: | QBluetoothServiceInfo::Alternative , QBluetoothServiceInfo::Sequence , QByteArrayList , QItemSelection , QMqttUserProperties , QNdefMessage , QPolygon , QPolygonF , QQueue , QSignalSpy , QStack , QStringList , QTestEventList , QVector , QVulkanInfoVector ,和 QXmlStreamAttributes |
注意: 此类的所有函数 可重入 .
QList (const QList<T> & other ) | |
QList (QList<T> && other ) | |
QList (InputIterator first , InputIterator last ) | |
QList (std::initializer_list<T> args ) | |
QList (qsizetype size , QList::parameter_type value ) | |
QList (qsizetype size ) | |
QList () | |
QList<T> & | operator= (QList<T> && other ) |
QList<T> & | operator= (const QList<T> & other ) |
~QList () | |
void | append (QList::parameter_type value ) |
void | append (QList::rvalue_ref value ) |
void | append (const QList<T> & value ) |
void | append (QList<T> && value ) |
QList::const_reference | at (qsizetype i ) const |
QList::reference | back () |
QList::const_reference | back () const |
QList::iterator | begin () |
QList::const_iterator | begin () const |
qsizetype | capacity () const |
QList::const_iterator | cbegin () const |
QList::const_iterator | cend () const |
void | clear () |
QList::const_iterator | constBegin () const |
QList::const_pointer | constData () const |
QList::const_iterator | constEnd () const |
const T & | constFirst () const |
const T & | constLast () const |
bool | contains (const AT & value ) const |
qsizetype | count (const AT & value ) const |
qsizetype | count () const |
QList::const_reverse_iterator | crbegin () const |
QList::const_reverse_iterator | crend () const |
QList::pointer | data () |
QList::const_pointer | data () const |
QList::iterator | emplace (qsizetype i , Args &&... args ) |
QList::iterator | emplace (QList::const_iterator before , Args &&... args ) |
QList::reference | emplaceBack (Args &&... args ) |
QList::reference | emplace_back (Args &&... args ) |
bool | empty () const |
QList::iterator | end () |
QList::const_iterator | end () const |
bool | endsWith (QList::parameter_type value ) const |
QList::iterator | erase (QList::const_iterator pos ) |
QList::iterator | erase (QList::const_iterator begin , QList::const_iterator end ) |
QList<T> & | fill (QList::parameter_type value , qsizetype size = -1) |
T & | first () |
const T & | first () const |
QList<T> | first (qsizetype n ) const |
QList::reference | front () |
QList::const_reference | front () const |
qsizetype | indexOf (const AT & value , qsizetype from = 0) const |
QList::iterator | insert (qsizetype i , QList::parameter_type value ) |
QList::iterator | insert (qsizetype i , qsizetype count , QList::parameter_type value ) |
QList::iterator | insert (QList::const_iterator before , QList::parameter_type value ) |
QList::iterator | insert (QList::const_iterator before , qsizetype count , QList::parameter_type value ) |
QList::iterator | insert (QList::const_iterator before , QList::rvalue_ref value ) |
QList::iterator | insert (qsizetype i , QList::rvalue_ref value ) |
bool | isEmpty () const |
T & | last () |
const T & | last () const |
QList<T> | last (qsizetype n ) const |
qsizetype | lastIndexOf (const AT & value , qsizetype from = -1) const |
qsizetype | length () const |
QList<T> | mid (qsizetype pos , qsizetype length = -1) const |
void | move (qsizetype from , qsizetype to ) |
void | pop_back () |
void | pop_front () |
void | prepend (QList::rvalue_ref value ) |
void | prepend (QList::parameter_type value ) |
void | push_back (QList::parameter_type value ) |
void | push_back (QList::rvalue_ref value ) |
void | push_front (QList::rvalue_ref value ) |
void | push_front (QList::parameter_type value ) |
QList::reverse_iterator | rbegin () |
QList::const_reverse_iterator | rbegin () const |
void | remove (qsizetype i , qsizetype n = 1) |
qsizetype | removeAll (const AT & t ) |
void | removeAt (qsizetype i ) |
void | removeFirst () |
qsizetype | removeIf (Predicate pred ) |
void | removeLast () |
bool | removeOne (const AT & t ) |
QList::reverse_iterator | rend () |
QList::const_reverse_iterator | rend () const |
void | replace (qsizetype i , QList::parameter_type value ) |
void | replace (qsizetype i , QList::rvalue_ref value ) |
void | reserve (qsizetype size ) |
void | resize (qsizetype size ) |
void | shrink_to_fit () |
qsizetype | size () const |
QList<T> | sliced (qsizetype pos , qsizetype n ) const |
QList<T> | sliced (qsizetype pos ) const |
void | squeeze () |
bool | startsWith (QList::parameter_type value ) const |
void | swap (QList<T> & other ) |
void | swapItemsAt (qsizetype i , qsizetype j ) |
T | takeAt (qsizetype i ) |
QList::value_type | takeFirst () |
QList::value_type | takeLast () |
T | value (qsizetype i ) const |
T | value (qsizetype i , QList::parameter_type defaultValue ) const |
bool | operator!= (const QList<T> & other ) const |
QList<T> | operator+ (const QList<T> & other ) const |
QList<T> | operator+ (QList<T> && other ) const |
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 ) |
bool | operator< (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 ) |
bool | operator<= (const QList<T> & other ) const |
QList<T> & | operator= (std::initializer_list<T> args ) |
bool | operator== (const QList<T> & other ) const |
bool | operator> (const QList<T> & other ) const |
bool | operator>= (const QList<T> & other ) const |
QList::reference | operator[] (qsizetype i ) |
QList::const_reference | operator[] (qsizetype i ) const |
qsizetype | erase (QList<T> & list , const AT & t ) |
qsizetype | erase_if (QList<T> & list , Predicate pred ) |
size_t | qHash (const QList<T> & key , size_t seed = 0) |
QDataStream & | operator<< (QDataStream & out , const QList<T> & list ) |
QDataStream & | operator>> (QDataStream & in , QList<T> & list ) |
QList
QList<T> 和 QVarLengthArray <T> 提供类似 API 和功能。它们经常可互换,但有性能后果。这里是用例概述:
注意: QList 和 QVarLengthArray 两者均保证兼容 C 数组布局。
注意: QList in Qt 5 did not always have a C-compatible array layout and we often recommended to use QVector instead for more predictable performance. This is not the case in Qt 6 anymore, where both classes now share an implementation and can be used interchangeably.
Here's an example of a QList that stores integers and a QList that stores QString 值:
QList<int> integerList; QList<QString> stringList;
QList stores its items in an array of continuous memory. Typically, lists are created with an initial size. For example, the following code constructs a QList with 200 elements:
QList<QString> list(200);
The elements are automatically initialized with a 默认构造值 . If you want to initialize the list with a different value, pass that value as the second argument to the constructor:
QList<QString> list(200, "Pass");
You can also call fill () at any time to fill the list with a value.
QList uses 0-based indexes, just like C++ arrays. To access the item at a particular index position, you can use operator[](). On non-const lists, operator[]() returns a reference to the item that can be used on the left side of an assignment:
if (list[0] == "Liz") list[0] = "Elizabeth";
For read-only access, an alternative syntax is to use at ():
for (qsizetype i = 0; i < list.size(); ++i) { if (list.at(i) == "Alfonso") cout << "Found Alfonso at position " << i << Qt::endl; }
at () can be faster than operator[](), because it never causes a 深拷贝 的出现。
Another way to access the data stored in a QList is to call data (). The function returns a pointer to the first item in the list. You can use the pointer to directly access and modify the elements stored in the list. The pointer is also useful if you need to pass a QList to a function that accepts a plain C++ array.
If you want to find all occurrences of a particular value in a list, use indexOf () 或 lastIndexOf (). The former searches forward starting from a given index position, the latter searches backward. Both return the index of the matching item if they found one; otherwise, they return -1. For example:
qsizetype i = list.indexOf("Harumi"); if (i != -1) cout << "First occurrence of Harumi is at position " << i << Qt::endl;
If you simply want to check whether a list contains a particular value, use contains (). If you want to find out how many times a particular value occurs in the list, use count ().
QList provides these basic functions to add, move, and remove items: insert (), replace (), remove (), prepend (), append (). With the exception of append (), prepend () 和 replace (), these functions can be slow ( 线性时间 ) for large lists, because they require moving many items in the list by one position in memory. If you want a container class that provides fast insertion/removal in the middle, use std::list instead.
Unlike plain C++ arrays, QLists can be resized at any time by calling resize (). If the new size is larger than the old size, QList might need to reallocate the whole list. QList tries to reduce the number of reallocations by preallocating up to twice as much memory as the actual data needs.
If you're building a QList gradually and know in advance approximately how many elements it will contain, you can call reserve (), asking QList to preallocate a certain amount of memory. You can also call capacity () to find out how much memory the QList actually has allocated.
Note that using non-const operators and functions can cause QList to do a deep copy of the data, due to 隐式共享 .
QList's value type must be an
可赋值数据类型
. This covers most data types that are commonly used, but the compiler won't let you, for example, store a
QWidget
作为值;取而代之,存储
QWidget
*. A few functions have additional requirements; for example,
indexOf
() 和
lastIndexOf
() expect the value type to support
operator==()
. These requirements are documented on a per-function basis.
Like the other container classes, QList provides Java 风格迭代器 ( QListIterator and QMutableListIterator ) 和 STL 样式迭代器 ( QList::const_iterator and QList::iterator ). In practice, iterators are handy when working with generic algorithms provided by Qt and the C++ standard library. Java 风格迭代器 are provided for backwards compatibility, prefer STL 样式迭代器 when writing C++ code.
注意: Iterators over a QList, and references to individual elements within one, cannot be relied on to remain valid when any non-const method of the QList is called. Accessing such an iterator or reference after the call to a non-const method leads to undefined behavior. When stability for iterator-like functionality is required, you should use indexes instead of iterators as they are not tied to QList's internal state and thus do not get invalidated.
除 QList 外,Qt 还提供 QVarLengthArray ,具有小的功能速度优化的很低级类。
有关比较 Qt 各种容器和 STL 容器的详细讨论,见 理解 Qt 容器 .
The maximum size of QList depends on the architecture. Most 64-bit systems can allocate more than 2 GB of memory, with a typical limit of 2^63 bytes. The actual value also depends on the overhead required for managing the data block. As a result, you can expect the maximum size of 2 GB minus overhead on 32-bit platforms, and 2^63 bytes minus overhead on 64-bit platforms. The number of elements that can be stored in a QList is this maximum size divided by the size of a stored element.
When memory allocation fails, QList uses the
Q_CHECK_PTR
macro, which throws a
std::bad_alloc
exception if the application is being compiled with exception support. If exceptions are disabled, then running out of memory is undefined behavior.
Note that the operating system may impose further limits on applications holding a lot of allocated memory, especially large, contiguous blocks. Such considerations, the configuration of such behavior or any mitigation are outside the scope of the Qt API.
[alias]
QList::
ConstIterator
Qt 样式同义词 QList::const_iterator .
[alias]
QList::
Iterator
Qt 样式同义词 QList::iterator .
[alias]
QList::
const_pointer
为兼容 STL 提供。
[alias]
QList::
const_reference
为兼容 STL 提供。
[alias, since 5.6]
QList::
const_reverse_iterator
The QList::const_reverse_iterator typedef provides an STL-style const reverse iterator for QList .
警告: Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read 隐式共享迭代器问题 .
警告: Iterators are invalidated when QList is modified. Consider that all iterators are invalidated by default. Exceptions to this rule are explicitly documented.
该 typedef 在 Qt 5.6 引入。
另请参阅 QList::rbegin (), QList::rend (), QList::reverse_iterator ,和 QList::const_iterator .
[alias]
QList::
difference_type
为兼容 STL 提供。
[alias]
QList::
parameter_type
[alias]
QList::
pointer
为兼容 STL 提供。
[alias]
QList::
reference
为兼容 STL 提供。
[alias, since 5.6]
QList::
reverse_iterator
The QList::reverse_iterator typedef provides an STL-style non-const reverse iterator for QList .
警告: Iterators on implicitly shared containers do not work exactly like STL-iterators. You should avoid copying a container while iterators are active on that container. For more information, read 隐式共享迭代器问题 .
警告: Iterators are invalidated when QList is modified. Consider that all iterators are invalidated by default. Exceptions to this rule are explicitly documented.
该 typedef 在 Qt 5.6 引入。
另请参阅 QList::rbegin (), QList::rend (), QList::const_reverse_iterator ,和 QList::iterator .
[alias]
QList::
rvalue_ref
[alias]
QList::
size_type
为兼容 STL 提供。
[alias]
QList::
value_type
为兼容 STL 提供。
This function is provided for STL compatibility. It is equivalent to prepend( value ).
替换项在索引位置 i with value .
i must be a valid index position in the list (i.e., 0 <= i < size ()).
另请参阅 operator[] () 和 remove ().
这是重载函数。
插入 value in front of the item pointed to by the iterator before . Returns an iterator pointing at the inserted item.
插入 value at index position i in the list. If i is 0, the value is prepended to the list. If i is size (), the value is appended to the list.
范例:
QList<QString> list; list << "alpha" << "beta" << "delta"; list.insert(2, "gamma"); // list: ["alpha", "beta", "gamma", "delta"]
For large lists, this operation can be slow ( 线性时间 ), because it requires moving all the items at indexes i and above by one position further in memory. If you want a container class that provides a fast insert () function, use std::list instead.
另请参阅 append (), prepend (),和 remove ().
Adds a new element to the end for the container. This new element is constructed in-place using args as the arguments for its construction.
返回对新元素的引用。
范例:
QList<QString> list{"one", "two"}; list.emplaceBack(3, 'a'); qDebug() << list; // list: ["one", "two", "aaa"]
It is also possible to access a newly created object by using returned reference:
QList<QString> list; auto &ref = list.emplaceBack(); ref = "one"; // list: ["one"]
This is the same as list.emplace(list. size (), args ).
另请参阅 emplace .
插入 value 在列表的开头。
范例:
QList<QString> list; list.prepend("one"); list.prepend("two"); list.prepend("three"); // list: ["three", "two", "one"]
This is the same as list.insert(0, value ).
Normally this operation is relatively fast (amortized 常量时间 ). QList is able to allocate extra memory at the beginning of the list data and grow in that direction without reallocating or moving the data on each operation. However if you want a container class with a guarantee of 常量时间 prepend, use std::list instead, but prefer QList 否则。
[default]
QList::
QList
(const
QList
<
T
> &
other
)
构造副本为 other .
此操作花费 常量时间 , because QList is 隐式共享 . This makes returning a QList from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and that takes 线性时间 .
另请参阅 operator= ().
[default, since 5.2]
QList::
QList
(
QList
<
T
> &&
other
)
Move-constructs a QList instance, making it point at the same object that other 所指向的。
该函数在 Qt 5.2 引入。
[since 5.14]
template <typename InputIterator> QList::
QList
(
InputIterator
first
,
InputIterator
last
)
Constructs a list with the contents in the iterator range [ first , last ).
The value type of
InputIterator
must be convertible to
T
.
该函数在 Qt 5.14 引入。
Constructs a list from the std::initializer_list given by args .
构造列表采用初始尺寸为 size elements. Each element is initialized with value .
构造列表采用初始尺寸为 size 元素。
元素被初始化采用 默认构造值 .
另请参阅 resize ().
构造空列表。
另请参阅 resize ().
[default, since 5.2]
QList
<
T
> &QList::
operator=
(
QList
<
T
> &&
other
)
移动赋值 other 到此 QList 实例。
该函数在 Qt 5.2 引入。
[default]
QList
<
T
> &QList::
operator=
(const
QList
<
T
> &
other
)
赋值 other to this list and returns a reference to this list.
[default]
QList::
~QList
()
Destroys the list.
插入 value 在列表末尾。
范例:
QList<QString> list; list.append("one"); list.append("two"); QString three = "three"; list.append(three); // list: ["one", "two", "three"] // three: "three"
This is the same as calling resize( size () + 1) and assigning value to the new last element in the list.
This operation is relatively fast, because QList typically allocates more memory than necessary, so it can grow without reallocating the entire list each time.
另请参阅 operator<< (), prepend (),和 insert ().
[since 5.6]
void
QList::
append
(
QList::rvalue_ref
value
)
这是重载函数。
范例:
QList<QString> list; list.append("one"); list.append("two"); QString three = "three"; list.append(std::move(three)); // list: ["one", "two", "three"] // three: ""
该函数在 Qt 5.6 引入。
[since 5.5]
void
QList::
append
(const
QList
<
T
> &
value
)
这是重载函数。
Appends the items of the value list to this list.
该函数在 Qt 5.5 引入。
另请参阅 operator<< () 和 operator+= ().
[since 6.0]
void
QList::
append
(
QList
<
T
> &&
value
)
这是重载函数。
Moves the items of the value list to the end of this list.
该函数在 Qt 6.0 引入。
另请参阅 operator<< () 和 operator+= ().
返回项按索引位置 i 在列表中。
i must be a valid index position in the list (i.e., 0 <= i < size ()).
另请参阅 value () 和 operator[] ().
此函数为兼容 STL (标准模板库) 提供。它相当于 last ().
这是重载函数。
返回 STL 样式迭代器 指向列表首项。
警告: 返回迭代器不验证当分离时或当 QList 被修改。
另请参阅 constBegin () 和 end ().
这是重载函数。
Returns the maximum number of items that can be stored in the list without forcing a reallocation.
The sole purpose of this function is to provide a means of fine tuning QList 's memory usage. In general, you will rarely ever need to call this function. If you want to know how many items are in the list, call size ().
注意: a statically allocated list will report a capacity of 0, even if it's not empty.
警告: The free space position in the allocated memory block is undefined. In other words, you should not assume that the free memory is always located at the end of the list. You can call reserve () to ensure that there is enough space at the end.
[since 5.0]
QList::const_iterator
QList::
cbegin
() const
返回常量 STL 样式迭代器 指向列表首项。
警告: 返回迭代器不验证当分离时或当 QList 被修改。
该函数在 Qt 5.0 引入。
[since 5.0]
QList::const_iterator
QList::
cend
() const
返回常量 STL 样式迭代器 pointing just after the last item in the list.
警告: 返回迭代器不验证当分离时或当 QList 被修改。
该函数在 Qt 5.0 引入。
Removes all the elements from the list.
注意: Until Qt 5.6, this also released the memory used by the list. From Qt 5.7, the capacity is preserved. To shed all capacity, swap with a default-constructed list:
QList<T> l ...; QList<T>().swap(l); Q_ASSERT(l.capacity() == 0);
or call squeeze ().
另请参阅 squeeze ().
返回常量 STL 样式迭代器 指向列表首项。
警告: 返回迭代器不验证当分离时或当 QList 被修改。
Returns a const pointer to the data stored in the list. The pointer can be used to access the items in the list.
警告: The pointer is invalidated on detachment or when the QList 被修改。
This function is mostly useful to pass a list to a function that accepts a plain C++ array.
另请参阅 data () 和 operator[] ().
返回常量 STL 样式迭代器 pointing just after the last item in the list.
警告: 返回迭代器不验证当分离时或当 QList 被修改。
另请参阅 constBegin () 和 end ().
[since 5.6]
const
T
&QList::
constFirst
() const
Returns a const reference to the first item in the list. This function assumes that the list isn't empty.
该函数在 Qt 5.6 引入。
另请参阅 constLast (), isEmpty (),和 first ().
[since 5.6]
const
T
&QList::
constLast
() const
Returns a const reference to the last item in the list. This function assumes that the list isn't empty.
该函数在 Qt 5.6 引入。
另请参阅 constFirst (), isEmpty (),和 last ().
返回
true
if the list contains an occurrence of
value
;否则返回
false
.
This function requires the value type to have an implementation of
operator==()
.
Returns the number of occurrences of value 在列表中。
This function requires the value type to have an implementation of
operator==()
.
另请参阅 contains () 和 indexOf ().
这是重载函数。
如同 size ().
[since 5.6]
QList::const_reverse_iterator
QList::
crbegin
() const
返回常量 STL-style reverse iterator pointing to the first item in the list, in reverse order.
警告: 返回迭代器不验证当分离时或当 QList 被修改。
该函数在 Qt 5.6 引入。
另请参阅 begin (), rbegin (),和 rend ().
[since 5.6]
QList::const_reverse_iterator
QList::
crend
() const
返回常量 STL-style reverse iterator pointing just after the last item in the list, in reverse order.
警告: 返回迭代器不验证当分离时或当 QList 被修改。
该函数在 Qt 5.6 引入。
另请参阅 end (), rend (),和 rbegin ().
Returns a pointer to the data stored in the list. The pointer can be used to access and modify the items in the list.
范例:
QList<int> list(10); int *data = list.data(); for (qsizetype i = 0; i < 10; ++i) data[i] = 2 * i;
警告: The pointer is invalidated on detachment or when the QList 被修改。
This function is mostly useful to pass a list to a function that accepts a plain C++ array.
另请参阅 constData () 和 operator[] ().
这是重载函数。
Extends the container by inserting a new element at position i . This new element is constructed in-place using args as the arguments for its construction.
Returns an iterator to the new element.
范例:
QList<QString> list{"a", "ccc"}; list.emplace(1, 2, 'b'); // list: ["a", "bb", "ccc"]
注意: It is guaranteed that the element will be created in place at the beginning, but after that it might be copied or moved to the right position.
另请参阅 emplaceBack .
这是重载函数。
Creates a new element in front of the item pointed to by the iterator before . This new element is constructed in-place using args as the arguments for its construction.
Returns an iterator to the new element.
此函数为兼容 STL (标准模板库) 提供。它相当于
isEmpty
(), returning
true
if the list is empty; otherwise returns
false
.
返回 STL 样式迭代器 pointing just after the last item in the list.
警告: 返回迭代器不验证当分离时或当 QList 被修改。
这是重载函数。
返回
true
if this list is not empty and its last item is equal to
value
;否则返回
false
.
Removes the item pointed to by the iterator pos from the list, and returns an iterator to the next item in the list (which may be end ()).
Element removal will preserve the list's capacity and not reduce the amount of allocated memory. To shed extra capacity and free as much memory as possible, call squeeze ().
注意: 当 QList 不是 隐式共享 , this function only invalidates iterators at or after the specified position.
这是重载函数。
Removes all the items from begin up to (but not including) end . Returns an iterator to the same item that end referred to before the call.
Element removal will preserve the list's capacity and not reduce the amount of allocated memory. To shed extra capacity and free as much memory as possible, call squeeze ().
注意: 当 QList 不是 隐式共享 , this function only invalidates iterators at or after the specified position.
赋值 value to all items in the list. If size is different from -1 (the default), the list is resized to size 事先。
范例:
QList<QString> list(3); list.fill("Yes"); // list: ["Yes", "Yes", "Yes"] list.fill("oh", 5); // list: ["oh", "oh", "oh", "oh", "oh"]
另请参阅 resize ().
Returns a reference to the first item in the list. This function assumes that the list isn't empty.
另请参阅 last (), isEmpty (),和 constFirst ().
这是重载函数。
[since 6.0]
QList
<
T
> QList::
first
(
qsizetype
n
) const
Returns a sub-list that contains the first n elements of this list.
注意: 行为未定义当 n < 0 or n > size ().
该函数在 Qt 6.0 引入。
此函数为兼容 STL (标准模板库) 提供。它相当于 first ().
这是重载函数。
Returns the index position of the first occurrence of value in the list, searching forward from index position from . Returns -1 if no item matched.
范例:
QList<QString> list; list << "A" << "B" << "C" << "B" << "A"; list.indexOf("B"); // returns 1 list.indexOf("B", 1); // returns 1 list.indexOf("B", 2); // returns 3 list.indexOf("X"); // returns -1
This function requires the value type to have an implementation of
operator==()
.
另请参阅 lastIndexOf () 和 contains ().
这是重载函数。
插入 count 个副本对于 value at index position i 在列表中。
范例:
QList<double> list; list << 2.718 << 1.442 << 0.4342; list.insert(1, 3, 9.9); // list: [2.718, 9.9, 9.9, 9.9, 1.442, 0.4342]
插入 count 个副本对于 value in front of the item pointed to by the iterator before . Returns an iterator pointing at the first of the inserted items.
返回
true
if the list has size 0; otherwise returns
false
.
Returns a reference to the last item in the list. This function assumes that the list isn't empty.
另请参阅 first (), isEmpty (),和 constLast ().
这是重载函数。
[since 6.0]
QList
<
T
> QList::
last
(
qsizetype
n
) const
Returns a sub-list that contains the last n elements of this list.
注意: 行为未定义当 n < 0 or n > size ().
该函数在 Qt 6.0 引入。
Returns the index position of the last occurrence of the value value in the list, searching backward from index position from 。若 from is -1 (the default), the search starts at the last item. Returns -1 if no item matched.
范例:
QList<QString> list; list << "A" << "B" << "C" << "B" << "A"; list.lastIndexOf("B"); // returns 3 list.lastIndexOf("B", 3); // returns 3 list.lastIndexOf("B", 2); // returns 1 list.lastIndexOf("X"); // returns -1
This function requires the value type to have an implementation of
operator==()
.
另请参阅 indexOf ().
[since 5.2]
qsizetype
QList::
length
() const
该函数在 Qt 5.2 引入。
Returns a sub-list which contains elements from this list, starting at position pos 。若 length is -1 (the default), all elements after pos are included; otherwise length elements (or all remaining elements if there are less than length elements) are included.
[since 5.6]
void
QList::
move
(
qsizetype
from
,
qsizetype
to
)
移动项按索引位置 from 到索引位置 to .
该函数在 Qt 5.6 引入。
此函数为兼容 STL (标准模板库) 提供。它相当于 removeLast ().
此函数为兼容 STL (标准模板库) 提供。它相当于 removeFirst ().
This function is provided for STL compatibility. It is equivalent to append( value ).
[since 5.6]
void
QList::
push_back
(
QList::rvalue_ref
value
)
这是重载函数。
该函数在 Qt 5.6 引入。
[since 5.6]
QList::reverse_iterator
QList::
rbegin
()
返回 STL-style reverse iterator pointing to the first item in the list, in reverse order.
警告: 返回迭代器不验证当分离时或当 QList 被修改。
该函数在 Qt 5.6 引入。
另请参阅 begin (), crbegin (),和 rend ().
[since 5.6]
QList::const_reverse_iterator
QList::
rbegin
() const
这是重载函数。
该函数在 Qt 5.6 引入。
移除 n elements from the list, starting at index position i .
Element removal will preserve the list's capacity and not reduce the amount of allocated memory. To shed extra capacity and free as much memory as possible, call squeeze ().
注意: 当 QList 不是 隐式共享 , this function only invalidates iterators at or after the specified position.
另请参阅 insert (), replace (),和 fill ().
[since 5.4]
template <typename AT>
qsizetype
QList::
removeAll
(const
AT
&
t
)
Removes all elements that compare equal to t from the list. Returns the number of elements removed, if any.
Element removal will preserve the list's capacity and not reduce the amount of allocated memory. To shed extra capacity and free as much memory as possible, call squeeze ().
该函数在 Qt 5.4 引入。
另请参阅 removeOne ().
[since 5.2]
void
QList::
removeAt
(
qsizetype
i
)
Removes the element at index position i . Equivalent to
remove(i);
Element removal will preserve the list's capacity and not reduce the amount of allocated memory. To shed extra capacity and free as much memory as possible, call squeeze ().
注意: 当 QList 不是 隐式共享 , this function only invalidates iterators at or after the specified position.
该函数在 Qt 5.2 引入。
另请参阅 remove ().
[since 5.1]
void
QList::
removeFirst
()
Removes the first item in the list. Calling this function is equivalent to calling remove(0). The list must not be empty. If the list can be empty, call isEmpty () before calling this function.
Element removal will preserve the list's capacity and not reduce the amount of allocated memory. To shed extra capacity and free as much memory as possible, call squeeze ().
该函数在 Qt 5.1 引入。
另请参阅 remove (), takeFirst (),和 isEmpty ().
[since 6.1]
template <typename Predicate>
qsizetype
QList::
removeIf
(
Predicate
pred
)
Removes all elements for which the predicate pred returns true from the list. Returns the number of elements removed, if any.
该函数在 Qt 6.1 引入。
另请参阅 removeAll ().
[since 5.1]
void
QList::
removeLast
()
Removes the last item in the list. Calling this function is equivalent to calling remove( size () - 1). The list must not be empty. If the list can be empty, call isEmpty () before calling this function.
Element removal will preserve the list's capacity and not reduce the amount of allocated memory. To shed extra capacity and free as much memory as possible, call squeeze ().
该函数在 Qt 5.1 引入。
另请参阅 remove (), takeLast (), removeFirst (),和 isEmpty ().
[since 5.4]
template <typename AT>
bool
QList::
removeOne
(const
AT
&
t
)
Removes the first element that compares equal to t from the list. Returns whether an element was, in fact, removed.
Element removal will preserve the list's capacity and not reduce the amount of allocated memory. To shed extra capacity and free as much memory as possible, call squeeze ().
该函数在 Qt 5.4 引入。
另请参阅 removeAll ().
[since 5.6]
QList::reverse_iterator
QList::
rend
()
返回 STL-style reverse iterator pointing just after the last item in the list, in reverse order.
警告: 返回迭代器不验证当分离时或当 QList 被修改。
该函数在 Qt 5.6 引入。
另请参阅 end (), crend (),和 rbegin ().
[since 5.6]
QList::const_reverse_iterator
QList::
rend
() const
这是重载函数。
该函数在 Qt 5.6 引入。
试图分配内存为至少 size 元素。
If you know in advance how large the list will be, you should call this function to prevent reallocations and memory fragmentation. If you resize the list often, you are also likely to get better performance.
If in doubt about how much space shall be needed, it is usually better to use an upper bound as size , or a high estimate of the most likely size, if a strict upper bound would be much bigger than this. If size is an underestimate, the list will grow as needed once the reserved size is exceeded, which may lead to a larger allocation than your best overestimate would have and will slow the operation that triggers it.
警告: reserve() reserves memory but does not change the size of the list. Accessing data beyond the current end of the list is undefined behavior. If you need to access memory beyond the current end of the list, use resize ().
另请参阅 squeeze (), capacity (),和 resize ().
Sets the size of the list to size 。若 size is greater than the current size, elements are added to the end; the new elements are initialized with a 默认构造值 。若 size is less than the current size, elements are removed from the end.
Since Qt 5.6, resize() doesn't shrink the capacity anymore. To shed excess capacity, use squeeze ().
另请参阅 size ().
[since 5.10]
void
QList::
shrink_to_fit
()
此函数为兼容 STL (标准模板库) 提供。它相当于 squeeze ().
该函数在 Qt 5.10 引入。
Returns the number of items in the list.
[since 6.0]
QList
<
T
> QList::
sliced
(
qsizetype
pos
,
qsizetype
n
) const
Returns a sub-list that contains n elements of this list, starting at position pos .
注意: 行为未定义当 pos < 0, n < 0, or pos + n > size ().
该函数在 Qt 6.0 引入。
[since 6.0]
QList
<
T
> QList::
sliced
(
qsizetype
pos
) const
这是重载函数。
Returns a sub-list that contains the elements of this list starting at position pos and extending to its end.
注意: 行为未定义当 pos < 0 or pos > size ().
该函数在 Qt 6.0 引入。
Releases any memory not required to store the items.
The sole purpose of this function is to provide a means of fine tuning QList 's memory usage. In general, you will rarely ever need to call this function.
另请参阅 reserve () 和 capacity ().
返回
true
if this list is not empty and its first item is equal to
value
;否则返回
false
.
Swaps list other with this list. This operation is very fast and never fails.
Exchange the item at index position i with the item at index position j . This function assumes that both i and j are at least 0 but less than size (). To avoid failure, test that both i and j are at least 0 and less than size ().
[since 5.2]
T
QList::
takeAt
(
qsizetype
i
)
Removes the element at index position i and returns it.
相当于
T t = at(i); remove(i); return t;
注意: 当 QList 不是 隐式共享 , this function only invalidates iterators at or after the specified position.
该函数在 Qt 5.2 引入。
另请参阅 takeFirst () 和 takeLast ().
[since 5.1]
QList::value_type
QList::
takeFirst
()
Removes the first item in the list and returns it. This function assumes the list is not empty. To avoid failure, call isEmpty () before calling this function.
该函数在 Qt 5.1 引入。
另请参阅 takeLast () 和 removeFirst ().
[since 5.1]
QList::value_type
QList::
takeLast
()
Removes the last item in the list and returns it. This function assumes the list is not empty. To avoid failure, call isEmpty () before calling this function.
若不使用返回值, removeLast () 效率更高。
该函数在 Qt 5.1 引入。
另请参阅 takeFirst () 和 removeLast ().
Returns the value at index position i 在列表中。
If the index i is out of bounds, the function returns a 默认构造值 . If you are certain that i is within bounds, you can use at () instead, which is slightly faster.
另请参阅 at () 和 operator[] ().
这是重载函数。
If the index i is out of bounds, the function returns defaultValue .
返回
true
if
other
is not equal to this list; otherwise returns
false
.
Two lists are considered equal if they contain the same values in the same order.
This function requires the value type to have an implementation of
operator==()
.
另请参阅 operator== ().
Returns a list that contains all the items in this list followed by all the items in the other 列表。
另请参阅 operator+= ().
[since 6.0]
QList
<
T
> QList::
operator+
(
QList
<
T
> &&
other
) const
这是重载函数。
该函数在 Qt 6.0 引入。
另请参阅 operator+= ().
Appends the items of the other list to this list and returns a reference to this list.
另请参阅 operator+ () 和 append ().
[since 6.0]
QList
<
T
> &QList::
operator+=
(
QList
<
T
> &&
other
)
这是重载函数。
该函数在 Qt 6.0 引入。
另请参阅 operator+ () 和 append ().
这是重载函数。
追加 value to the list.
另请参阅 append () 和 operator<< ().
[since 5.11]
QList
<
T
> &QList::
operator+=
(
QList::rvalue_ref
value
)
这是重载函数。
该函数在 Qt 5.11 引入。
另请参阅 append () 和 operator<< ().
[since 5.6]
bool
QList::
operator<
(const
QList
<
T
> &
other
) const
返回
true
if this list is
lexically less than
other
;否则返回
false
.
This function requires the value type to have an implementation of
operator<()
.
该函数在 Qt 5.6 引入。
追加 value to the list and returns a reference to this list.
另请参阅 append () 和 operator+= ().
追加 other to the list and returns a reference to the list.
[since 6.0]
QList
<
T
> &QList::
operator<<
(
QList
<
T
> &&
other
)
这是重载函数。
该函数在 Qt 6.0 引入。
[since 5.11]
QList
<
T
> &QList::
operator<<
(
QList::rvalue_ref
value
)
这是重载函数。
该函数在 Qt 5.11 引入。
另请参阅 append () 和 operator+= ().
[since 5.6]
bool
QList::
operator<=
(const
QList
<
T
> &
other
) const
返回
true
if this list is
lexically less than or equal to
other
;否则返回
false
.
This function requires the value type to have an implementation of
operator<()
.
该函数在 Qt 5.6 引入。
[since 5.14]
QList
<
T
> &QList::
operator=
(
std::initializer_list
<
T
>
args
)
Assigns the collection of values in args 到此 QList 实例。
该函数在 Qt 5.14 引入。
返回
true
if
other
is equal to this list; otherwise returns
false
.
Two lists are considered equal if they contain the same values in the same order.
This function requires the value type to have an implementation of
operator==()
.
另请参阅 operator!= ().
[since 5.6]
bool
QList::
operator>
(const
QList
<
T
> &
other
) const
返回
true
if this list is
lexically greater than
other
;否则返回
false
.
This function requires the value type to have an implementation of
operator<()
.
该函数在 Qt 5.6 引入。
[since 5.6]
bool
QList::
operator>=
(const
QList
<
T
> &
other
) const
返回
true
if this list is
lexically greater than or equal to
other
;否则返回
false
.
This function requires the value type to have an implementation of
operator<()
.
该函数在 Qt 5.6 引入。
返回项按索引位置 i 作为可修改引用。
i must be a valid index position in the list (i.e., 0 <= i < size ()).
Note that using non-const operators can cause QList to do a deep copy.
这是重载函数。
如同 at( i ).
[since 6.1]
template <typename T, typename AT>
qsizetype
erase
(
QList
<
T
> &
list
, const
AT
&
t
)
Removes all elements that compare equal to t from the list list . Returns the number of elements removed, if any.
注意: 不像 QList::removeAll , t is not allowed to be a reference to an element inside list . If you cannot be sure that this is not the case, take a copy of t and call this function with the copy.
该函数在 Qt 6.1 引入。
另请参阅 QList::removeAll () 和 erase_if .
[since 6.1]
template <typename T, typename Predicate>
qsizetype
erase_if
(
QList
<
T
> &
list
,
Predicate
pred
)
Removes all elements for which the predicate pred returns true from the list list . Returns the number of elements removed, if any.
该函数在 Qt 6.1 引入。
另请参阅 erase .
[since 5.6]
template <typename T>
size_t
qHash
(const
QList
<
T
> &
key
,
size_t
seed
= 0)
返回哈希值为 key ,使用 seed 做计算种子。
This function requires qHash() to be overloaded for the value type
T
.
该函数在 Qt 5.6 引入。
Writes the list list 到流 out .
This function requires the value type to implement
operator<<()
.
另请参阅 QDataStream 运算符格式 .
Reads a list from stream in into list .
This function requires the value type to implement
operator>>()
.
另请参阅 QDataStream 运算符格式 .