Spec-Zone.ru › Qt 6.0

Класс QLinkedList

шаблон <typename T> класс QLinkedList

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

Заголовок: #include <QLinkedList>
CMake: find_package(Qt6 COMPONENTS Core5Compat REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core5Compat)
qmake: QT += core5compat
  • Список всех членов, включая унаследованные

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

Типы

класс const_iterator
класс iterator
ConstIterator
Iterator
указатель_на_константный_элемент
константная_ссылка
обратный_итератор_на_константный_элемент
разность_типов
указатель
ссылка
обратный_итератор
тип_размера
тип_значения

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

QLinkedList(QLinkedList<T> &&other)
QLinkedList(InputIterator first, InputIterator last)
QLinkedList(std::initializer_list<T> list)
QLinkedList(const QLinkedList<T> &other)
QLinkedList()
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

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

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

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

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

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

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

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

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

Вот пример 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.

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

QLinkedList::ConstIterator

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

QLinkedList::Iterator

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

QLinkedList::const_pointer

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

QLinkedList::const_reference

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

[since 5.6] 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.

QLinkedList::difference_type

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

QLinkedList::pointer

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

QLinkedList::reference

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

[since 5.6] 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.

QLinkedList::size_type

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

QLinkedList::value_type

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

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

[since 5.2] QLinkedList::QLinkedList(QLinkedList<T> &&other)

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

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

[since 5.14] template <typename InputIterator> QLinkedList::QLinkedList(InputIterator first, InputIterator last)

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

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

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

[since 5.2] QLinkedList::QLinkedList(std::initializer_list<T> list)

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

Этот конструктор активен только если компилятор поддерживает std::initializer_list (C++11).

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

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

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

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

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

QLinkedList::QLinkedList()

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

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

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

[since 5.0] QLinkedList::const_iterator QLinkedList::cbegin() const

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

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

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

[since 5.0] 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().

[since 5.6] QLinkedList::const_reverse_iterator QLinkedList::crbegin() const

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

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

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

[since 5.6] 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.

См. также 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);

См. также 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(value).

[since 5.6] QLinkedList::reverse_iterator QLinkedList::rbegin()

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

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

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

[since 5.6] 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==().

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

[since 5.6] QLinkedList::reverse_iterator QLinkedList::rend()

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

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

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

[since 5.6] 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.

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

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

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

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

См. также 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-6.0/qlinkedlist.html

Spec-Zone.ru

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