Spec-Zone.ru › Qt 5.15

Класс QLinkedList

шаблон <typename T> class QLinkedList

Класс QLinkedList — это шаблонный класс, предоставляющий списки. Подробнее...

Заголовок: #include <QLinkedList>
qmake: QT += core

Этот класс устарел. Он предоставляется для поддержки работы старого исходного кода. Мы настоятельно рекомендуем избегать его использования в новом коде.

  • Список всех членов, включая наследуемые
  • Устаревшие члены

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

Типы публичного доступа

typedef ConstIterator
typedef Iterator
typedef const_pointer
typedef const_reference
typedef const_reverse_iterator
typedef difference_type
typedef pointer
typedef reference
typedef reverse_iterator
typedef size_type
typedef value_type

Публичные функции

QLinkedList(QLinkedList<T> &&other)
QLinkedList(InputIterator first, InputIterator last)
QLinkedList(std::initializer_list<T> list)
QLinkedList(const QLinkedList<T> &other)
QLinkedList()
QLinkedList<T> & operator=(QLinkedList<T> &&other)
QLinkedList<T> & operator=(const QLinkedList<T> &other)
~QLinkedList()
void append(const T &value)
T & back()
const T & back() const
QLinkedList::iterator begin()
QLinkedList::const_iterator begin() const
QLinkedList::const_iterator cbegin() const
QLinkedList::const_iterator cend() const
void clear()
QLinkedList::const_iterator constBegin() const
QLinkedList::const_iterator constEnd() const
bool contains(const T &value) const
int count(const T &value) const
int count() const
QLinkedList::const_reverse_iterator crbegin() const
QLinkedList::const_reverse_iterator crend() const
bool empty() const
QLinkedList::iterator end()
QLinkedList::const_iterator end() const
bool endsWith(const T &value) const
QLinkedList::iterator erase(QLinkedList::iterator pos)
QLinkedList::iterator erase(QLinkedList::iterator begin, QLinkedList::iterator end)
T & first()
const T & first() const
T & front()
const T & front() const
QLinkedList::iterator insert(QLinkedList::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)
QLinkedList::reverse_iterator rbegin()
QLinkedList::const_reverse_iterator rbegin() const
int removeAll(const T &value)
void removeFirst()
void removeLast()
bool removeOne(const T &value)
QLinkedList::reverse_iterator rend()
QLinkedList::const_reverse_iterator rend() const
int size() const
bool startsWith(const T &value) const
void swap(QLinkedList<T> &other)
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)
bool operator==(const QLinkedList<T> &other) const
END_OF_DOCUMENT_MARKER

Статические публичные члены

QLinkedList<T> fromStdList(const std::list<T> &list)

Связанные нечлены

QDataStream & operator<<(QDataStream &out, const QLinkedList<T> &list)
QDataStream & operator>>(QDataStream &in, QLinkedList<T> &list)

Подробное описание

Примечание: Этот класс устарел, пожалуйста, используйте std::list вместо него.

QLinkedList<T> — один из обобщённых классов контейнеров Qt. Он хранит список значений и предоставляет доступ на основе итераторов, а также вставки и удаления с постоянной сложностью.

QList<T>, QLinkedList<T> и QVector<T> предоставляют похожую функциональность. Вот обзор:

  • Для большинства целей, QList — это правильный класс для использования. Его индексный API более удобен, чем основанный на итераторах API QLinkedList, и он обычно быстрее, чем QVector из-за способа хранения элементов в памяти (см. Сложность алгоритмов для получения подробностей). Он также генерирует меньше кода в исполняемом файле.
  • Если вам нужна реальная связанная структура данных, с гарантией вставки с постоянной сложностью в середине списка и итераторами для элементов, а не индексов, используйте QLinkedList.
  • Если вы хотите, чтобы элементы занимали смежные позиции в памяти, используйте QVector.

Вот пример QLinkedList, хранящей целые числа, и QLinkedList, хранящей значения QTime:

QLinkedList<int> integerList;
QLinkedList<QTime> timeList;

QLinkedList хранит список элементов. Конструктор по умолчанию создаёт пустой список. Для вставки элементов в список можно использовать оператор<<():

QLinkedList<QString> list;
list << "one" << "two" << "three";
// list: ["one", "two", "three"]

Если вам нужны первый или последний элемент в связанном списке, используйте first() или last(). Если вы хотите удалить элемент с одного из концов списка, используйте removeFirst() или removeLast(). Если вы хотите удалить все вхождения заданного значения из списка, используйте removeAll().

Частая задача — удалить первый или последний элемент из списка и что-то с ним сделать. Для этого QLinkedList предоставляет takeFirst() и takeLast(). Вот цикл, который удаляет элементы из списка по одному и вызывает delete для каждого из них:

QLinkedList<QWidget *> list;
...
while (!list.isEmpty())
    delete list.takeFirst();

Тип значения QLinkedList должен быть присваиваемым типом данных. Это охватывает большинство типов данных, которые обычно используются, но компилятор не позволит вам, например, хранить QWidget как значение; вместо этого храните QWidget *. Некоторые функции имеют дополнительные требования; например, contains() и removeAll() ожидают, что тип значения поддерживает operator==(). Эти требования документированы для каждой функции.

Если вам нужно вставить, изменить или удалить элементы в середине списка, необходимо использовать итератор. QLinkedList предоставляет итераторы как в стиле Java (QLinkedListIterator и QMutableLinkedListIterator), так и в стиле STL (QLinkedList::const_iterator и QLinkedList::iterator). Подробности см. в документации этих классов.

См. также QLinkedListIterator, QMutableLinkedListIterator, QList и QVector.

Документация по типам членов

typedef QLinkedList::ConstIterator

Синоним Qt-стиля для QLinkedList::const_iterator.

typedef QLinkedList::Iterator

Синоним Qt-стиля для QLinkedList::iterator.

typedef QLinkedList::const_pointer

Тип-синоним для const T *. Предоставлен для совместимости со STL.

typedef QLinkedList::const_reference

Тип-синоним для const T &. Предоставлен для совместимости со STL.

typedef QLinkedList::const_reverse_iterator

QLinkedList::const_reverse_iterator предоставляет итератор обратного перебора в стиле STL для QLinkedList.

Это просто тип-синоним для std::reverse_iterator<QLinkedList::const_iterator>.

Предупреждение: Итераторы на неявно-разделяемых контейнерах не работают точно так же, как итераторы STL. Следует избегать копирования контейнера, пока активны итераторы на этом контейнере. Более подробную информацию можно найти в разделе Проблема итераторов при неявном совместном использовании.

Этот тип-синоним был введён в Qt 5.6.

См. также QLinkedList::rbegin(), QLinkedList::rend(), QLinkedList::reverse_iterator и QLinkedList::const_iterator.

typedef QLinkedList::difference_type

Тип-синоним для ptrdiff_t. Предоставлен для совместимости со STL.

typedef QLinkedList::pointer

Тип-синоним для T *. Предоставлен для совместимости со STL.

typedef QLinkedList::reference

Тип-синоним для T &. Предоставлен для совместимости со STL.

typedef QLinkedList::reverse_iterator

QLinkedList::reverse_iterator предоставляет итератор обратного перебора в стиле STL для QLinkedList.

Это просто тип-синоним для std::reverse_iterator<QLinkedList::iterator>.

Предупреждение: Итераторы на неявно-разделяемых контейнерах не работают точно так же, как итераторы STL. Следует избегать копирования контейнера, пока активны итераторы на этом контейнере. Более подробную информацию можно найти в разделе Проблема итераторов при неявном совместном использовании.

Этот тип-синоним был введён в Qt 5.6.

См. также QLinkedList::rbegin(), QLinkedList::rend(), QLinkedList::const_reverse_iterator и QLinkedList::iterator.

typedef QLinkedList::size_type

Тип-синоним для int. Предоставлен для совместимости со STL.

typedef QLinkedList::value_type

Тип-синоним для T. Предоставлен для совместимости со STL.

Документация по функциям-членам

QLinkedList::QLinkedList(QLinkedList<T> &&other)

Перемещающее создание экземпляра QLinkedList, делая его указателем на тот же объект, на который указывал other.

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

template <typename InputIterator> QLinkedList::QLinkedList(InputIterator first, InputIterator last)

Создаёт список с содержимым в диапазоне итераторов [first, last).

Тип значения InputIterator должен быть преобразуем к T.

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

QLinkedList::QLinkedList(std::initializer_list<T> list)

Создаёт список из std::initializer_list, указанного в list.

Этот конструктор разрешён только если компилятор поддерживает C++11 initializer lists.

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

QLinkedList::QLinkedList(const QLinkedList<T> &other)

Создаёт копию other.

Эта операция выполняется за постоянное время, потому что QLinkedList неявно разделяемый. Это делает возвращение QLinkedList из функции очень быстрым. Если изменён общий экземпляр, он будет скопирован (copy-on-write), и это займёт линейное время.

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

QLinkedList::QLinkedList()

Создаёт пустой список.

QLinkedList<T> &QLinkedList::operator=(QLinkedList<T> &&other)

Перемещающее присваивание other этому экземпляру QLinkedList.

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

QLinkedList<T> &QLinkedList::operator=(const QLinkedList<T> &other)

Присваивает other этому списку и возвращает ссылку на этот список.

QLinkedList::~QLinkedList()

Уничтожает список. Ссылки на значения в списке и все итераторы по этому списку становятся недействительными.

void QLinkedList::append(const T &value)

Вставляет value в конец списка.

Пример:

QLinkedList<QString> list;
list.append("one");
list.append("two");
list.append("three");
// list: ["one", "two", "three"]

Это то же самое, что list.insert(end(), value).

См. также operator<<(), prepend() и insert().

T &QLinkedList::back()

Эта функция предоставлена для совместимости со STL. Она эквивалентна last().

const T &QLinkedList::back() const

Это перегруженная функция.

QLinkedList::iterator QLinkedList::begin()

Возвращает итератор STL, указывающий на первый элемент в списке.

См. также constBegin() и end().

QLinkedList::const_iterator QLinkedList::begin() const

Это перегруженная функция.

QLinkedList::const_iterator QLinkedList::cbegin() const

Возвращает постоянный итератор STL, указывающий на первый элемент в списке.

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

См. также begin() и cend().

QLinkedList::const_iterator QLinkedList::cend() const

Возвращает постоянный итератор STL, указывающий на элемент, следующий за последним элементом в списке.

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

См. также cbegin() и end().

void QLinkedList::clear()

Удаляет все элементы в списке.

См. также removeAll().

QLinkedList::const_iterator QLinkedList::constBegin() const

Возвращает постоянный итератор STL, указывающий на первый элемент в списке.

См. также begin() и constEnd().

QLinkedList::const_iterator QLinkedList::constEnd() const

Возвращает постоянный итератор STL, указывающий на элемент, следующий за последним элементом в списке.

См. также constBegin() и end().

bool QLinkedList::contains(const T &value) const

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

Для этой функции требуется, чтобы тип значения имел реализацию operator==().

См. также QLinkedListIterator::findNext() и QLinkedListIterator::findPrevious().

int QLinkedList::count(const T &value) const

Возвращает количество вхождений value в списке.

Для этой функции требуется, чтобы тип значения имел реализацию operator==().

См. также contains().

int QLinkedList::count() const

То же, что и size().

QLinkedList::const_reverse_iterator QLinkedList::crbegin() const

Возвращает постоянный итератор STL, указывающий на первый элемент в списке в обратном порядке.

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

См. также begin(), rbegin(), и rend().

QLinkedList::const_reverse_iterator QLinkedList::crend() const

Возвращает постоянный итератор STL, указывающий на элемент, следующий за последним элементом в списке в обратном порядке.

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

См. также end(), rend(), и rbegin().

bool QLinkedList::empty() const

Эта функция предоставлена для совместимости со STL. Она эквивалентна isEmpty() и возвращает true если список пуст.

QLinkedList::iterator QLinkedList::end()

Возвращает итератор STL, указывающий на элемент, следующий за последним элементом в списке.

См. также begin() и constEnd().

QLinkedList::const_iterator QLinkedList::end() const

Это перегруженная функция.

bool QLinkedList::endsWith(const T &value) const

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

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

См. также isEmpty() и last().

QLinkedList::iterator QLinkedList::erase(QLinkedList::iterator pos)

Удаляет элемент, на который указывает итератор pos из списка и возвращает итератор на следующий элемент в списке (который может быть end()).

См. также insert().

QLinkedList::iterator QLinkedList::erase(QLinkedList::iterator begin, QLinkedList::iterator end)

Это перегруженная функция.

Удаляет все элементы от begin до (но не включая) end.

T &QLinkedList::first()

Возвращает ссылку на первый элемент в списке. Предполагается, что список не пуст.

См. также last() и isEmpty().

const T &QLinkedList::first() const

Это перегруженная функция.

[static] QLinkedList<T> QLinkedList::fromStdList(const std::list<T> &list)

Возвращает объект QLinkedList с данными, содержащимися в list. Порядок элементов в QLinkedList совпадает с порядком в 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.

См. также toStdList().

T &QLinkedList::front()

Эта функция предоставлена для совместимости со STL. Она эквивалентна first().

const T &QLinkedList::front() const

Это перегруженная функция.

QLinkedList::iterator QLinkedList::insert(QLinkedList::iterator before, const T &value)

Вставляет value перед элементом, на который указывает итератор before. Возвращает итератор, указывающий на вставленный элемент.

См. также erase().

bool QLinkedList::isEmpty() const

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

См. также size().

T &QLinkedList::last()

Возвращает ссылку на последний элемент в списке. Предполагается, что список не пуст.

См. также first() и isEmpty().

const T &QLinkedList::last() const

Это перегруженная функция.

void QLinkedList::pop_back()

Эта функция предоставлена для совместимости со STL. Она эквивалентна removeLast().

void QLinkedList::pop_front()

Эта функция предоставлена для совместимости со STL. Она эквивалентна removeFirst().

void QLinkedList::prepend(const T &value)

Вставляет value в начало списка.

Пример:

QLinkedList<QString> list;
list.prepend("one");
list.prepend("two");
list.prepend("three");
// list: ["three", "two", "one"]

Это то же самое, что и list.insert(begin(), value).

См. также append() и insert().

void QLinkedList::push_back(const T &value)

Эта функция предоставлена для совместимости со STL. Она эквивалентна append(value).

void QLinkedList::push_front(const T &value)

Эта функция предоставляется для совместимости со STL. Она эквивалентна prepend(значение).

QLinkedList::reverse_iterator QLinkedList::rbegin()

Возвращает итератор в стиле STL обратного порядка, указывающий на первый элемент в списке в обратном порядке.

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

См. также begin(), crbegin() и rend().

QLinkedList::const_reverse_iterator QLinkedList::rbegin() const

Это перегруженная функция.

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

int QLinkedList::removeAll(const T &value)

Удаляет все вхождения value в списке.

Пример:

QList<QString> list;
list << "sun" << "cloud" << "sun" << "rain";
list.removeAll("sun");
// list: ["cloud", "rain"]

Для этой функции тип значения должен поддерживать operator==().

См. также insert().

void QLinkedList::removeFirst()

Удаляет первый элемент в списке.

Это то же самое, что и erase(begin()).

См. также removeLast() и erase().

void QLinkedList::removeLast()

Удаляет последний элемент в списке.

См. также removeFirst() и erase().

bool QLinkedList::removeOne(const T &value)

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

Пример:

QList<QString> list;
list << "sun" << "cloud" << "sun" << "rain";
list.removeOne("sun");
// list: ["cloud", "sun", "rain"]

Для этой функции тип значения должен поддерживать operator==().

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

См. также insert().

QLinkedList::reverse_iterator QLinkedList::rend()

Возвращает итератор в стиле STL обратного порядка, указывающий на позицию, следующую за последним элементом в списке в обратном порядке.

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

См. также end(), crend() и rbegin().

QLinkedList::const_reverse_iterator QLinkedList::rend() const

Это перегруженная функция.

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

int QLinkedList::size() const

Возвращает количество элементов в списке.

См. также isEmpty() и count().

bool QLinkedList::startsWith(const T &value) const

Возвращает true , если список не пуст и его первый элемент равен value; в противном случае возвращает false.

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

См. также isEmpty() и first().

void QLinkedList::swap(QLinkedList<T> &other)

Меняет местами списки other и этот список. Эта операция очень быстрая и никогда не завершается с ошибкой.

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

T QLinkedList::takeFirst()

Удаляет первый элемент в списке и возвращает его.

Если вам не нужно возвращаемое значение, то removeFirst() более эффективен.

См. также takeLast() и removeFirst().

T QLinkedList::takeLast()

Удаляет последний элемент в списке и возвращает его.

Если вам не нужно возвращаемое значение, то removeLast() более эффективен.

См. также takeFirst() и removeLast().

std::list<T> QLinkedList::toStdList() const

Возвращает объект std::list с данными, содержащимися в этом QLinkedList. Пример:

QLinkedList<double> list;
list << 1.2 << 0.5 << 3.14;

std::list<double> stdlist = list.toStdList();

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

См. также fromStdList().

bool QLinkedList::operator!=(const QLinkedList<T> &other) const

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

Два списка считаются равными, если они содержат одинаковые значения в том же порядке.

Для этой функции тип значения должен поддерживать operator==().

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

QLinkedList<T> QLinkedList::operator+(const QLinkedList<T> &other) const

Возвращает список, содержащий все элементы этого списка, за которыми следуют все элементы списка other.

См. также operator+=().

QLinkedList<T> &QLinkedList::operator+=(const QLinkedList<T> &other)

Добавляет элементы списка other в этот список и возвращает ссылку на этот список.

См. также operator+() и append().

QLinkedList<T> &QLinkedList::operator+=(const T &value)

Это перегруженная функция.

Добавляет value в список.

QLinkedList<T> &QLinkedList::operator<<(const QLinkedList<T> &other)

Добавляет элементы списка other в этот список и возвращает ссылку на этот список.

См. также operator+=() и append().

QLinkedList<T> &QLinkedList::operator<<(const T &value)

Это перегруженная функция.

Добавляет value в список.

bool QLinkedList::operator==(const QLinkedList<T> &other) const

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

Два списка считаются равными, если они содержат одинаковые значения в том же порядке.

Для этой функции тип значения должен поддерживать operator==().

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

Связанные нечленные функции

template <typename T> QDataStream &operator<<(QDataStream &out, const QLinkedList<T> &list)

Записывает связанный список list в поток out.

Для этой функции тип значения должен поддерживать operator<<().

См. также Формат операторов QDataStream.

template <typename T> QDataStream &operator>>(QDataStream &in, QLinkedList<T> &list)

Читает связанный список из потока in в list.

Для этой функции тип значения должен поддерживать operator>>().

См. также Формат операторов QDataStream.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qlinkedlist.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API