Qt:Документация 4.3.2/qlinkedlist

Материал из Wiki.crossplatform.ru

Перейти к: навигация, поиск
40px Внимание: Актуальная версия перевода документации находится здесь

__NOTOC__

Image:qt-logo.png

Главная · Все классы · Основные классы · Классы по группам · Модули · Функции

Image:trolltech-logo.png

Содержание

[править] QLinkedList Class Reference
[модуль QtCore ]

The QLinkedList class is a template class that provides linked lists. Далее...

 #include <QLinkedList>

Inherited by Q3ValueList.

Примечание: все функции в этом классе реентерабельны.

[править] Открытые типы

[править] Открытые функции

[править] Статические открытые члены

[править] Связанные не-члены

  • 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:

  • For most purposes, QList is the right class to use. Its index-based API is more convenient than QLinkedList's iterator-based API, and it is usually faster than QVector because of the way it stores its items in memory (see Algorithmic Complexity for details). It also expands to less code in your executable.
  • If you need a real linked list, with guarantees of constant time insertions in the middle of the list and iterators to items rather than indexes, use QLinkedList.
  • If you want the items to occupy adjacent memory positions, use QVector.

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 QListIterator, QMutableListIterator, QList, and QVector.


[править] Описание типов

[править]
typedef QLinkedList::ConstIterator

Qt-style synonym for QList::const_iterator.

[править]
typedef QLinkedList::Iterator

Qt-style synonym for QList::iterator.

[править]
typedef QLinkedList::const_pointer

Typedef for const T *. Provided for STL compatibility.

[править]
typedef QLinkedList::const_reference

Typedef for const T &. Provided for STL compatibility.

[править]
typedef QLinkedList::difference_type

Typedef for ptrdiff_t. Provided for STL compatibility.

[править]
typedef QLinkedList::pointer

Typedef for T *. Provided for STL compatibility.

[править]
typedef QLinkedList::reference

Typedef for T &. Provided for STL compatibility.

[править]
typedef QLinkedList::size_type

Typedef for int. Provided for STL compatibility.

[править]
typedef QLinkedList::value_type

Typedef for T. Provided for STL compatibility.


[править] Описание функций-членов

[править]
QLinkedList::QLinkedList ()

Constructs an empty list.

[править]
QLinkedList::QLinkedList ( const QLinkedList<T> & other )

Создаёт копию 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=().

[править]
QLinkedList::~QLinkedList ()

Destroys the list. References to the values in the list, and all iterators over this list, become invalid.

[править]
void QLinkedList::append ( const T & value )

Inserts value at the end of the list.

Пример:

 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().

[править]
T & QLinkedList::back ()

This function is provided for STL compatibility. It is equivalent to last().

[править]
const T & QLinkedList::back () const

Эта перегруженная функция предоставлена для удобства.

[править]
iterator QLinkedList::begin ()

Returns an STL-style iterator pointing to the first item in the list.

See also constBegin() and end().

[править]
const_iterator QLinkedList::begin () const

Эта перегруженная функция предоставлена для удобства.

[править]
void QLinkedList::clear ()

Removes all the items in the list.

See also removeAll().

[править]
const_iterator QLinkedList::constBegin () const

Returns a const STL-style iterator pointing to the first item in the list.

See also begin() and constEnd().

[править]
const_iterator QLinkedList::constEnd () const

Returns a const STL-style iterator pointing to the imaginary item after the last item in the list.

See also constBegin() and end().

[править]
bool QLinkedList::contains ( const T & value ) const

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 QListIterator::findNext() and QListIterator::findPrevious().

[править]
int QLinkedList::count ( const T & value ) const

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().

[править]
int QLinkedList::count () const

Эта перегруженная функция предоставлена для удобства.

Same as size().

[править]
bool QLinkedList::empty () const

This function is provided for STL compatibility. It is equivalent to isEmpty() and returns true if the list is empty.

[править]
iterator QLinkedList::end ()

Returns an STL-style iterator pointing to the imaginary item after the last item in the list.

See also begin() and constEnd().

[править]
const_iterator QLinkedList::end () const

Эта перегруженная функция предоставлена для удобства.

[править]
iterator QLinkedList::erase ( iterator pos )

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().

[править]
iterator QLinkedList::erase ( iterator begin, iterator end )

Эта перегруженная функция предоставлена для удобства.

Removes all the items from begin up to (but not including) end.

[править]
T & QLinkedList::first ()

Returns a reference to the first item in the list. This function assumes that the list isn't empty.

See also last() and isEmpty().

[править]
const T & QLinkedList::first () const

Эта перегруженная функция предоставлена для удобства.

[править]
QLinkedList<T> QLinkedList::fromStdList ( const std::list<T> & list ) [static]

Returns a QLinkedList object with the data contained in list. The order of the elements in the QLinkedList is the same as in list.

Пример:

 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);

Эта функция была введена в Qt 4.1.

See also toStdList().

[править]
T & QLinkedList::front ()

This function is provided for STL compatibility. It is equivalent to first().

[править]
const T & QLinkedList::front () const

Эта перегруженная функция предоставлена для удобства.

[править]
iterator QLinkedList::insert ( iterator before, const T & value )

Inserts value in front of the item pointed to by the iterator before. Returns an iterator pointing at the inserted item.

See also erase().

[править]
bool QLinkedList::isEmpty () const

Возвращает true, если список не содержит элементов; в противном случае возвращается false.

See also size().

[править]
T & QLinkedList::last ()

Returns a reference to the last item in the list. This function assumes that the list isn't empty.

See also first() and isEmpty().

[править]
const T & QLinkedList::last () const

Эта перегруженная функция предоставлена для удобства.

[править]
void QLinkedList::pop_back ()

This function is provided for STL compatibility. It is equivalent to removeLast().

[править]
void QLinkedList::pop_front ()

This function is provided for STL compatibility. It is equivalent to removeFirst().

[править]
void QLinkedList::prepend ( const T & value )

Inserts value at the beginning of the list.

Пример:

 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().

[править]
void QLinkedList::push_back ( const T & value )

This function is provided for STL compatibility. It is equivalent to append(value).

[править]
void QLinkedList::push_front ( const T & value )

This function is provided for STL compatibility. It is equivalent to prepend(value).

[править]
int QLinkedList::removeAll ( const T & value )

Removes all occurrences of value in the list.

Пример:

 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().

[править]
void QLinkedList::removeFirst ()

Removes the first item in the list.

This is the same as erase( begin()).

See also removeLast() and erase().

[править]
void QLinkedList::removeLast ()

Removes the last item in the list.

See also removeFirst() and erase().

[править]
int QLinkedList::size () const

Returns the number of items in the list.

See also isEmpty() and count().

[править]
T QLinkedList::takeFirst ()

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().

[править]
T QLinkedList::takeLast ()

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().

[править]
std::list<T> QLinkedList::toStdList () const

Returns a std::list object with the data contained in this QLinkedList. Пример:

 QLinkedList<double> list;
 list << 1.2 << 0.5 << 3.14;
 
 std::list<double> stdlist = list.toStdList();

Эта функция была введена в Qt 4.1.

See also fromStdList().

[править]
bool QLinkedList::operator!= ( const QLinkedList<T> & other ) const

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==().

Смотрите также operator==().

[править]
QLinkedList<T> QLinkedList::operator+ ( const QLinkedList<T> & other ) const

Returns a list that contains all the items in this list followed by all the items in the other list.

See also operator+=().

[править]
QLinkedList<T> & QLinkedList::operator+= ( const QLinkedList<T> & other )

Appends the items of the other list to this list and returns a reference to this list.

See also operator+() and append().

[править]
QLinkedList<T> & QLinkedList::operator+= ( const T & value )

Эта перегруженная функция предоставлена для удобства.

Appends value to the list.

[править]
QLinkedList<T> & QLinkedList::operator<< ( const QLinkedList<T> & other )

Appends the items of the other list to this list and returns a reference to this list.

See also operator+=() and append().

[править]
QLinkedList<T> & QLinkedList::operator<< ( const T & value )

Эта перегруженная функция предоставлена для удобства.

Appends value to the list.

[править]
QLinkedList<T> & QLinkedList::operator= ( const QLinkedList<T> & other )

Assigns other to this list and returns a reference to this list.

[править]
bool QLinkedList::operator== ( const QLinkedList<T> & other ) const

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==().

Смотирте также operator!=().


[править] Связанные не-члены

[править]
QDataStream & operator<< ( QDataStream & out, const QLinkedList<T> & list )

Эта перегруженная функция предоставлена для удобства.

Writes the linked list list to stream out.

This function requires the value type to implement operator<<().

See also Format of the QDataStream operators.

[править]
QDataStream & operator>> ( QDataStream & in, QLinkedList<T> & list )

Эта перегруженная функция предоставлена для удобства.

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.



Copyright © 2007 Trolltech Trademarks
Qt 4.3.2