The QLinkedList class is a template class that provides linked lists. More...
#include <QLinkedList>
Inherited by: Q3ValueList.
Note: All functions in this class are reentrant.
class | const_iterator |
class | iterator |
typedef | ConstIterator |
typedef | Iterator |
typedef | const_pointer |
typedef | const_reference |
typedef | difference_type |
typedef | pointer |
typedef | reference |
typedef | size_type |
typedef | value_type |
QLinkedList () | |
QLinkedList ( const QLinkedList<T> & other ) | |
~QLinkedList () | |
void | append ( const T & value ) |
T & | back () |
const T & | back () const |
iterator | begin () |
const_iterator | begin () const |
void | clear () |
const_iterator | constBegin () const |
const_iterator | constEnd () const |
bool | contains ( const T & value ) const |
int | count ( const T & value ) const |
int | count () const |
bool | empty () const |
iterator | end () |
const_iterator | end () const |
bool | endsWith ( const T & value ) const |
iterator | erase ( iterator pos ) |
iterator | erase ( iterator begin, iterator end ) |
T & | first () |
const T & | first () const |
T & | front () |
const T & | front () const |
iterator | insert ( iterator before, const T & value ) |
bool | isEmpty () const |
T & | last () |
const T & | last () const |
void | pop_back () |
void | pop_front () |
void | prepend ( const T & value ) |
void | push_back ( const T & value ) |
void | push_front ( const T & value ) |
int | removeAll ( const T & value ) |
void | removeFirst () |
void | removeLast () |
bool | removeOne ( const T & value ) |
int | size () const |
bool | startsWith ( const T & value ) const |
T | takeFirst () |
T | takeLast () |
std::list<T> | toStdList () const |
bool | operator!= ( const QLinkedList<T> & other ) const |
QLinkedList<T> | operator+ ( const QLinkedList<T> & other ) const |
QLinkedList<T> & | operator+= ( const QLinkedList<T> & other ) |
QLinkedList<T> & | operator+= ( const T & value ) |
QLinkedList<T> & | operator<< ( const QLinkedList<T> & other ) |
QLinkedList<T> & | operator<< ( const T & value ) |
QLinkedList<T> & | operator= ( const QLinkedList<T> & other ) |
bool | operator== ( const QLinkedList<T> & other ) const |
QLinkedList<T> | fromStdList ( const std::list<T> & list ) |
QDataStream & | operator<< ( QDataStream & out, const QLinkedList<T> & list ) |
QDataStream & | operator>> ( QDataStream & in, QLinkedList<T> & list ) |
The QLinkedList class is a template class that provides linked lists.
QLinkedList<T> is one of Qt's generic container classes. It stores a list of values and provides iterator-based access as well as constant time insertions and removals.
QList<T>, QLinkedList<T>, and QVector<T> provide similar functionality. Here's an overview:
Here's an example of a QLinkedList that stores integers and a QLinkedList that stores QTime values:
QLinkedList<int> integerList; QLinkedList<QTime> timeList;
QLinkedList stores a list of items. The default constructor creates an empty list. To insert items into the list, you can use operator<<():
QLinkedList<QString> list; list << "one" << "two" << "three"; // list: ["one", "two", "three"]
If you want to get the first or last item in a linked list, use first() or last(). If you want to remove an item from either end of the list, use removeFirst() or removeLast(). If you want to remove all occurrences of a given value in the list, use removeAll().
A common requirement is to remove the first or last item in the list and do something with it. For this, QLinkedList provides takeFirst() and takeLast(). Here's a loop that removes the items from a list one at a time and calls delete on them:
QLinkedList<QWidget *> list; ... while (!list.isEmpty()) delete list.takeFirst();
QLinkedList's value type must be an assignable data type. This covers most data types that are commonly used, but the compiler won't let you, for example, store a QWidget as a value; instead, store a QWidget *. A few functions have additional requirements; for example, contains() and removeAll() expect the value type to support operator==(). These requirements are documented on a per-function basis.
If you want to insert, modify, or remove items in the middle of the list, you must use an iterator. QLinkedList provides both Java-style iterators (QLinkedListIterator and QMutableLinkedListIterator) and STL-style iterators (QLinkedList::const_iterator and QLinkedList::iterator). See the documentation for these classes for details.
See also QLinkedListIterator, QMutableLinkedListIterator, QList, and QVector.
Qt-style synonym for QLinkedList::const_iterator.
Qt-style synonym for QLinkedList::iterator.
Typedef for const T *. Provided for STL compatibility.
Typedef for const T &. Provided for STL compatibility.
Typedef for ptrdiff_t. Provided for STL compatibility.
Typedef for T *. Provided for STL compatibility.
Typedef for T &. Provided for STL compatibility.
Typedef for int. Provided for STL compatibility.
Typedef for T. Provided for STL compatibility.
Constructs an empty list.
Constructs a copy of other.
This operation occurs in constant time, because QLinkedList is implicitly shared. This makes returning a QLinkedList from a function very fast. If a shared instance is modified, it will be copied (copy-on-write), and this takes linear time.
See also operator=().
Destroys the list. References to the values in the list, and all iterators over this list, become invalid.
Inserts value at the end of the list.
Example:
QLinkedList<QString> list; list.append("one"); list.append("two"); list.append("three"); // list: ["one", "two", "three"]
This is the same as list.insert(end(), value).
See also operator<<(), prepend(), and insert().
This function is provided for STL compatibility. It is equivalent to last().
This is an overloaded function.
Returns an STL-style iterator pointing to the first item in the list.
See also constBegin() and end().
This is an overloaded function.
Removes all the items in the list.
See also removeAll().
Returns a const STL-style iterator pointing to the first item in the list.
See also begin() and constEnd().
Returns a const STL-style iterator pointing to the imaginary item after the last item in the list.
See also constBegin() and end().
Returns true if the list contains an occurrence of value; otherwise returns false.
This function requires the value type to have an implementation of operator==().
See also QLinkedListIterator::findNext() and QLinkedListIterator::findPrevious().
Returns the number of occurrences of value in the list.
This function requires the value type to have an implementation of operator==().
See also contains().
Same as size().
This function is provided for STL compatibility. It is equivalent to isEmpty() and returns true if the list is empty.
Returns an STL-style iterator pointing to the imaginary item after the last item in the list.
See also begin() and constEnd().
This is an overloaded function.
Returns true if the list is not empty and its last item is equal to value; otherwise returns false.
This function was introduced in Qt 4.5.
See also isEmpty() and last().
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()).
See also insert().
This is an overloaded function.
Removes all the items from begin up to (but not including) end.
Returns a reference to the first item in the list. This function assumes that the list isn't empty.
See also last() and isEmpty().
This is an overloaded function.
Returns a QLinkedList object with the data contained in list. The order of the elements in the QLinkedList is the same as in list.
Example:
std::list<double> stdlist; list.push_back(1.2); list.push_back(0.5); list.push_back(3.14); QLinkedList<double> list = QLinkedList<double>::fromStdList(stdlist);
This function was introduced in Qt 4.1.
See also toStdList().
This function is provided for STL compatibility. It is equivalent to first().
This is an overloaded function.
Inserts value in front of the item pointed to by the iterator before. Returns an iterator pointing at the inserted item.
See also erase().
Returns true if the list contains no items; otherwise returns false.
See also size().
Returns a reference to the last item in the list. This function assumes that the list isn't empty.
See also first() and isEmpty().
This is an overloaded function.
This function is provided for STL compatibility. It is equivalent to removeLast().
This function is provided for STL compatibility. It is equivalent to removeFirst().
Inserts value at the beginning of the list.
Example:
QLinkedList<QString> list; list.prepend("one"); list.prepend("two"); list.prepend("three"); // list: ["three", "two", "one"]
This is the same as list.insert(begin(), value).
See also append() and insert().
This function is provided for STL compatibility. It is equivalent to append(value).
This function is provided for STL compatibility. It is equivalent to prepend(value).
Removes all occurrences of value in the list.
Example:
QList<QString> list; list << "sun" << "cloud" << "sun" << "rain"; list.removeAll("sun"); // list: ["cloud", "rain"]
This function requires the value type to have an implementation of operator==().
See also insert().
Removes the first item in the list.
This is the same as erase(begin()).
See also removeLast() and erase().
Removes the last item in the list.
See also removeFirst() and erase().
Removes the first occurrences of value in the list. Returns true on success; otherwise returns false.
Example:
QList<QString> list; list << "sun" << "cloud" << "sun" << "rain"; list.removeOne("sun"); // list: ["cloud", "sun", "rain"]
This function requires the value type to have an implementation of operator==().
This function was introduced in Qt 4.4.
See also insert().
Returns the number of items in the list.
See also isEmpty() and count().
Returns true if the list is not empty and its first item is equal to value; otherwise returns false.
This function was introduced in Qt 4.5.
See also isEmpty() and first().
Removes the first item in the list and returns it.
If you don't use the return value, removeFirst() is more efficient.
See also takeLast() and removeFirst().
Removes the last item in the list and returns it.
If you don't use the return value, removeLast() is more efficient.
See also takeFirst() and removeLast().
Returns a std::list object with the data contained in this QLinkedList. Example:
QLinkedList<double> list; list << 1.2 << 0.5 << 3.14; std::list<double> stdlist = list.toStdList();
This function was introduced in Qt 4.1.
See also fromStdList().
Returns 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 implement operator==().
See also operator==().
Returns a list that contains all the items in this list followed by all the items in the other list.
See also operator+=().
Appends the items of the other list to this list and returns a reference to this list.
See also operator+() and append().
This is an overloaded function.
Appends value to the list.
Appends the items of the other list to this list and returns a reference to this list.
See also operator+=() and append().
This is an overloaded function.
Appends value to the list.
Assigns other to this list and returns a reference to this list.
Returns 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 implement operator==().
See also operator!=().
Writes the linked list list to stream out.
This function requires the value type to implement operator<<().
See also Format of the QDataStream operators.
Reads a linked list from stream in into list.
This function requires the value type to implement operator>>().
See also Format of the QDataStream operators.
© 2008-2011 Nokia Corporation and/or its subsidiaries. Nokia, Qt and their respective logos are trademarks of Nokia Corporation in Finland and/or other countries worldwide.
All other trademarks are property of their respective owners. Privacy Policy
Licensees holding valid Qt Commercial licenses may use this document in accordance with the Qt Commercial License Agreement provided with the Software or, alternatively, in accordance with the terms contained in a written agreement between you and Nokia.
Alternatively, this document may be used under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation.