Spec-Zone.ru › Qt 5.6

Класс QList

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

Заголовок: #include <QList>
qmake: QT += core
Наследует: QListSpecialMethods
Наследуется в:

QBluetoothServiceInfo::Alternative, QBluetoothServiceInfo::Sequence, QByteArrayList, QItemSelection, QNdefMessage, QQueue, QSignalSpy, QStringList и QTestEventList

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

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

Открытые типы

класс MemoryLayout
класс const_iterator
класс iterator
тип ConstIterator
тип Iterator
тип const_pointer
тип const_reference
тип const_reverse_iterator
тип difference_type
тип pointer
тип reference
тип reverse_iterator
тип size_type
тип value_type

Открытые функции

QList()
QList(const QList<T> &other)
QList(QList<T> &&other)
QList(std::initializer_list<T> args)
~QList()
void append(const T &value)
void append(const QList<T> &value)
const T & at(int i) const
T & back()
const T & back() const
iterator begin()
const_iterator begin() const
const_iterator cbegin() const
const_iterator cend() const
void clear()
const_iterator constBegin() const
const_iterator constEnd() const
const T & constFirst() const
const T & constLast() const
bool contains(const T &value) const
int count(const T &value) const
int count() const
const_reverse_iterator crbegin() const
const_reverse_iterator crend() 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
int indexOf(const T &value, int from = 0) const
void insert(int i, const T &value)
iterator insert(iterator before, const T &value)
bool isEmpty() const
T & last()
const T & last() const
int lastIndexOf(const T &value, int from = -1) const
int length() const
QList<T> mid(int pos, int length = -1) const
void move(int from, int to)
void pop_back()
void pop_front()
void prepend(const T &value)
void push_back(const T &value)
void push_front(const T &value)
reverse_iterator rbegin()
const_reverse_iterator rbegin() const
int removeAll(const T &value)
void removeAt(int i)
void removeFirst()
void removeLast()
bool removeOne(const T &value)
reverse_iterator rend()
const_reverse_iterator rend() const
void replace(int i, const T &value)
void reserve(int alloc)
int size() const
bool startsWith(const T &value) const
void swap(QList<T> &other)
void swap(int i, int j)
T takeAt(int i)
T takeFirst()
T takeLast()
QSet<T> toSet() const
std::list<T> toStdList() const
END_OF_DOCUMENT_MARKER
QVector<T> toVector() const
T value(int i) const
T value(int i, const T &defaultValue) const
bool operator!=(const QList<T> &other) const
QList<T> operator+(const QList<T> &other) const
QList<T> & operator+=(const QList<T> &other)
QList<T> & operator+=(const T &value)
QList<T> & operator<<(const QList<T> &other)
QList<T> & operator<<(const T &value)
QList<T> & operator=(const QList<T> &other)
QList & operator=(QList<T> &&other)
bool operator==(const QList<T> &other) const
T & operator[](int i)
const T & operator[](int i) const

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

QList<T> fromSet(const QSet<T> &set)
QList<T> fromStdList(const std::list<T> &list)
QList<T> fromVector(const QVector<T> &vector)

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

uint qHash(const QList<T> &key, uint seed = 0)
bool operator<(const QList<T> &lhs, const QList<T> &rhs)
QDataStream & operator<<(QDataStream &out, const QList<T> &list)
bool operator<=(const QList<T> &lhs, const QList<T> &rhs)
bool operator>(const QList<T> &lhs, const QList<T> &rhs)
bool operator>=(const QList<T> &lhs, const QList<T> &rhs)
QDataStream & operator>>(QDataStream &in, QList<T> &list)

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

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

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

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

  • QVector — ваш предпочтительный выбор по умолчанию. QVector<T> обычно обеспечивает лучшую производительность, чем QList<T>, так как QVector<T> всегда хранит свои элементы последовательно в памяти, в то время как QList<T> будет выделять свои элементы в куче, если sizeof(T) <= sizeof(void*) и T объявлен как либо Q_MOVABLE_TYPE или Q_PRIMITIVE_TYPE с помощью Q_DECLARE_TYPEINFO. См. Преимущества и недостатки использования QList для объяснения.
  • Однако, QList используется во всех API Qt для передачи параметров и возвращаемых значений. Используйте QList для взаимодействия с этими API.
  • Если вам нужен реальный связанный список, который гарантирует постоянное время вставок посередине списка и использует итераторы для элементов, а не индексы, используйте QLinkedList.

Примечание: QVector и QVarLengthArray оба гарантируют совместимость с C-массивами. QList — нет. Это может быть важно, если ваше приложение должно взаимодействовать с API C.

Примечание: Итераторы в QLinkedList и ссылки в QList, выделенных в куче, остаются валидными, пока ссылаемые элементы остаются в контейнере. Это неверно для итераторов и ссылок в QVector и QList, которые не выделяют элементы в куче.

Внутри QList<T> представлен как массив T, если sizeof(T) <= sizeof(void*) и T объявлен как либо Q_MOVABLE_TYPE или Q_PRIMITIVE_TYPE с помощью Q_DECLARE_TYPEINFO. В противном случае QList<T> представлен как массив T* и элементы выделены в куче.

Представление массивом позволяет очень быстрый доступ по индексу и вставки. Операции prepend() и append() также очень быстры, потому что QList предварительно выделяет память на обоих концах внутреннего массива. (См. Алгоритмическая сложность для получения подробностей.)

Однако, когда указанные выше условия не соблюдаются, каждая вставка или добавление нового элемента требует выделения нового элемента в куче, и это выделение каждого элемента сделает QVector лучшим выбором для случаев использования, в которых выполняется много добавлений или вставок, потому что QVector может выделить память для многих элементов в одном выделении кучи.

Обратите внимание, что внутренний массив только увеличивается на протяжении всего жизненного цикла списка. Он никогда не уменьшается. Внутренний массив освобождается деструктором и оператором присваивания, когда один список присваивается другому.

Вот пример QList, хранящего целые числа, и QList, хранящего значения QDate:

QList<int> integerList;
QList<QDate> dateList;

Qt включает класс QStringList, который наследуется от QList<QString> и добавляет несколько функций удобства, таких как QStringList::join() и QStringList::filter(). QString::split() создает QStringLists из строк.

QList хранит список элементов. Конструктор по умолчанию создает пустой список. Чтобы вставить элементы в список, можно использовать operator<<():

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

QList предоставляет эти основные функции для добавления, перемещения и удаления элементов: insert(), replace(), removeAt(), move() и swap(). Кроме того, он предоставляет следующие функции удобства: append(), prepend(), removeFirst() и removeLast().

QList использует индексы с нуля, как и C++ массивы. Чтобы получить доступ к элементу по определенному индексу, можно использовать operator[](). Для списков, не являющихся константными, operator[]() возвращает ссылку на элемент и может использоваться в левой части оператора присваивания:

if (list[0] == "Bob")
    list[0] = "Robert";

Поскольку QList реализован как массив указателей для типов, которые больше, чем указатель, или не перемещаемы, эта операция требует (постоянного времени). Для только чтения доступна альтернативная синтаксическая конструкция с использованием at():

for (int i = 0; i < list.size(); ++i) {
    if (list.at(i) == "Jane")
        cout << "Found Jane at position " << i << endl;
}

at() может быть быстрее, чем operator[](), потому что он никогда не вызывает глубокой копии.

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

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

Вставка и удаление элементов на обоих концах списка очень быстры (постоянное время в большинстве случаев), поскольку QList предварительно выделяет дополнительное место на обоих концах своего внутреннего буфера для быстрой динамики списка.

Если вам нужно найти все вхождения определенного значения в списке, используйте indexOf() или lastIndexOf(). Первый выполняет поиск вперед, начиная с заданной позиции индекса, второй — назад. Оба возвращают индекс совпадающего элемента, если он найден; в противном случае возвращают -1. Например:

int i = list.indexOf("Jane");
if (i != -1)
    cout << "First occurrence of Jane is at position " << i << endl;

Если вы просто хотите проверить, содержит ли список определенное значение, используйте contains(). Если нужно узнать, сколько раз определенное значение встречается в списке, используйте count(). Если вы хотите заменить все вхождения определенного значения другим, используйте replace().

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

Как и другие классы контейнеров, QList предоставляет итераторы в стиле Java (QListIterator и QMutableListIterator) и итераторы в стиле STL (QList::const_iterator и QList::iterator). На практике они редко используются, поскольку вы можете использовать индексы в QList. QList реализован таким образом, что прямой доступ на основе индекса такой же быстрый, как и использование итераторов.

QList не поддерживает вставку, добавление в начало, добавление в конец или замену ссылок на собственные значения. Это приведёт к прерыванию работы вашего приложения с сообщением об ошибке.

Для максимальной эффективности QList не проверяет входные данные перед их использованием. За исключением isEmpty(), функции-члены всегда предполагают, что список не пустой. Функции-члены, принимающие индексы в качестве параметров, всегда предполагают, что их параметры находятся в допустимом диапазоне. Это означает, что функции-члены QList могут завершиться ошибкой. Если при компиляции определён QT_NO_DEBUG, ошибки не будут обнаружены. Если QT_NO_DEBUG не определён, ошибки будут обнаружены с помощью Q_ASSERT() или Q_ASSERT_X() с соответствующим сообщением.

Чтобы избежать ошибок, когда список может быть пустым, вызовите isEmpty() перед вызовом других функций-членов. Если вам необходимо передать значение индекса, которое может не находиться в допустимом диапазоне, проверьте, что оно меньше значения, возвращаемого size(), но не меньше 0.

Дополнительные члены

Если T — QByteArray, у этого класса есть ещё несколько членов, которые можно использовать. Более подробную информацию см. в документации QByteArrayList.

Если T — QString, у этого класса есть следующие дополнительные члены: filter, join, removeDuplicates, sort.

Дополнительная информация об использовании контейнеров Qt

Подробное сравнение контейнеров Qt друг с другом и с контейнерами STL можно найти в Understand the Qt Containers.

См. также QListIterator, QMutableListIterator, QLinkedList и QVector.

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

typedef QList::ConstIterator

Синоним в стиле Qt для QList::const_iterator.

typedef QList::Iterator

Синоним в стиле Qt для QList::iterator.

typedef QList::const_pointer

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

typedef QList::const_reference

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

typedef QList::const_reverse_iterator

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

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

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

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

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

typedef QList::difference_type

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

typedef QList::pointer

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

typedef QList::reference

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

typedef QList::reverse_iterator

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

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

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

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

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

typedef QList::size_type

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

typedef QList::value_type

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

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

QList::QList()

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

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

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

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

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

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

Перемещающая конструктор QList, заставляя его указывать на тот же объект, что и other.

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

QList::QList(std::initializer_list<T> args)

Создаёт список из переданного std::initializer_list args.

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

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

QList::~QList()

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

void QList::append(const T &value)

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

Пример:

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

Это эквивалентно list.insert(size(), value).

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

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

void QList::append(const QList<T> &value)

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

Добавляет элементы списка value в этот список.

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

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

const T &QList::at(int i) const

Возвращает элемент по индексу i в списке. i должен быть допустимым индексом в списке (т. е., 0 ≤ i < size()).

Эта функция очень быстрая (постоянное время).

См. также value() и operator[]().

T &QList::back()

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

const T &QList::back() const

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

iterator QList::begin()

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

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

const_iterator QList::begin() const

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

const_iterator QList::cbegin() const

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

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

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

const_iterator QList::cend() const

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

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

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

void QList::clear()

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

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

const_iterator QList::constBegin() const

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

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

const_iterator QList::constEnd() const

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

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

const T &QList::constFirst() const

Возвращает константную ссылку на первый элемент в списке. Список не должен быть пустым. Если список может быть пустым, вызовите isEmpty() перед вызовом этой функции.

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

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

const T &QList::constLast() const

Возвращает ссылку на последний элемент в списке. Список не должен быть пустым. Если список может быть пустым, вызовите isEmpty() перед вызовом этой функции.

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

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

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

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

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

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

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

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

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

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

int QList::count() const

Возвращает количество элементов в списке. Это фактически то же самое, что и size().

const_reverse_iterator QList::crbegin() const

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

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

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

const_reverse_iterator QList::crend() const

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

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

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

bool QList::empty() const

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

iterator QList::end()

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

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

const_iterator QList::end() const

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

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

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

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

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

iterator QList::erase(iterator pos)

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

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

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

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

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

T &QList::first()

Возвращает ссылку на первый элемент в списке. Список не должен быть пустым. Если список может быть пустым, вызовите isEmpty() перед вызовом этой функции.

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

const T &QList::first() const

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

[static] QList<T> QList::fromSet(const QSet<T> &set)

Возвращает объект QList с данными, содержащимися в set. Порядок элементов в QList не определён.

Пример:

QSet<int> set;
set << 20 << 30 << 40 << ... << 70;

QList<int> list = QList<int>::fromSet(set);
qSort(list);

См. также fromVector(), toSet() и QSet::toList().

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

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

Пример:

std::list<double> stdlist;
list.push_back(1.2);
list.push_back(0.5);
list.push_back(3.14);

QList<double> list = QList<double>::fromStdList(stdlist);

См. также toStdList() и QVector::fromStdVector().

[static] QList<T> QList::fromVector(const QVector<T> &vector)

Возвращает объект QList с данными, содержащимися в vector.

Пример:

QVector<double> vect;
vect << 20.0 << 30.0 << 40.0 << 50.0;

QList<double> list = QVector<T>::fromVector(vect);
// list: [20.0, 30.0, 40.0, 50.0]

См. также fromSet(), toVector() и QVector::toList().

T &QList::front()

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

const T &QList::front() const

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

int QList::indexOf(const T &value, int from = 0) const

Возвращает позицию индекса первого вхождения value в списке, выполняя поиск вперёд от позиции индекса from. Возвращает -1, если элемент не найден.

Пример:

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

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

Обратите внимание, что QList использует индексы с нуля, как и массивы C++. Отрицательные индексы не поддерживаются за исключением указанного выше значения.

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

void QList::insert(int i, const T &value)

Вставляет value в позицию индекса i в списке. Если i <= 0, значение вставляется в начало списка. Если i >= size(), значение вставляется в конец списка.

Пример:

QList<QString> list;
list << "alpha" << "beta" << "delta";
list.insert(2, "gamma");
// list: ["alpha", "beta", "gamma", "delta"]

См. также append(), prepend(), replace() и removeAt().

Итератор QList::insert(Итератор before, const T &value)

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

Вставляет value перед элементом, на который указывает итератор before. Возвращает итератор, указывающий на вставленный элемент. Обратите внимание, что итератор, переданный в функцию, станет недействительным после вызова; вместо него следует использовать возвращённый итератор.

bool QList::isEmpty() const

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

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

T &QList::last()

Возвращает ссылку на последний элемент в списке. Список не должен быть пустым. Если список может быть пустым, вызовите isEmpty() перед вызовом этой функции.

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

const T &QList::last() const

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

int QList::lastIndexOf(const T &value, int from = -1) const

Возвращает индекс последнего вхождения value в списке, выполняя поиск назад от позиции from. Если from равно -1 (по умолчанию), поиск начинается с последнего элемента. Возвращает -1, если элемент не найден.

Пример:

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

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

Обратите внимание, что QList использует индексацию с нуля, как и массивы C++. Отрицательные индексы не поддерживаются за исключением указанного выше значения.

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

int QList::length() const

Эта функция идентична count().

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

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

QList<T> QList::mid(int pos, int length = -1) const

Возвращает подсписок, включающий элементы из этого списка, начиная с позиции pos. Если length равно -1 (по умолчанию), включаются все элементы с позиции pos; в противном случае включаются length элементов (или все оставшиеся элементы, если их меньше, чем length).

void QList::move(int from, int to)

Перемещает элемент с индексом from на индекс to.

Пример:

QList<QString> list;
list << "A" << "B" << "C" << "D" << "E" << "F";
list.move(1, 4);
// list: ["A", "C", "D", "E", "B", "F"]

Это то же самое, что insert(to, takeAt(from)). Функция предполагает, что from и to не меньше 0 и меньше size(). Чтобы избежать ошибок, убедитесь, что оба from и to не меньше 0 и меньше size().

См. также swap(), insert() и takeAt().

void QList::pop_back()

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

void QList::pop_front()

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

void QList::prepend(const T &value)

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

Пример:

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

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

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

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

void QList::push_back(const T &value)

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

void QList::push_front(const T &value)

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

ОбратныйИтератор QList::rbegin()

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

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

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

ПостоянныйОбратныйИтератор QList::rbegin() const

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

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

int QList::removeAll(const T &value)

Удаляет все вхождения value в списке и возвращает количество удалённых элементов.

Пример:

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

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

См. также removeOne(), removeAt(), takeAt() и replace().

void QList::removeAt(int i)

Удаляет элемент с индексом i. i должен быть допустимым индексом в списке (т.е., 0 <= i < size()).

См. также takeAt(), removeFirst(), removeLast() и removeOne().

void QList::removeFirst()

Удаляет первый элемент в списке. Вызов этой функции эквивалентен вызову removeAt(0). Список не должен быть пустым. Если список может быть пустым, вызовите isEmpty() перед вызовом этой функции.

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

void QList::removeLast()

Удаляет последний элемент в списке. Вызов этой функции эквивалентен вызову removeAt(size() - 1). Список не должен быть пустым. Если список может быть пустым, вызовите isEmpty() перед вызовом этой функции.

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

bool QList::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.

См. также removeAll(), removeAt(), takeAt() и replace().

ОбратныйИтератор QList::rend()

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

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

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

ПостоянныйОбратныйИтератор QList::rend() const

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

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

void QList::replace(int i, const T &value)

Заменяет элемент с индексом i значением value. i должен быть допустимым индексом в списке (т.е., 0 <= i < size()).

См. также operator[]() и removeAt().

void QList::reserve(int alloc)

Зарезервировать память для alloc элементов.

Если alloc меньше текущего размера списка, ничего не произойдёт.

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

Функция была добавлена в Qt 4.7.

int QList::size() const

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

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

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

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

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

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

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

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

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

void QList::swap(int i, int j)

Меняет местами элемент в позиции индекса i с элементом в позиции индекса j. Эта функция предполагает, что оба i и j не меньше 0, но меньше size(). Чтобы избежать ошибок, проверьте, что оба i и j не меньше 0 и меньше size().

Пример:

QList<QString> list;
list << "A" << "B" << "C" << "D" << "E" << "F";
list.swap(1, 4);
// list: ["A", "E", "C", "D", "B", "F"]

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

T QList::takeAt(int i)

Удаляет элемент в позиции индекса i и возвращает его. i должен быть допустимой позицией индекса в списке (т.е., 0 <= i < size()).

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

См. также removeAt(), takeFirst() и takeLast().

T QList::takeFirst()

Удаляет первый элемент в списке и возвращает его. Это то же самое, что и takeAt(0). Эта функция предполагает, что список не пуст. Чтобы избежать ошибок, вызовите isEmpty() перед вызовом этой функции.

Если этот список не общий, эта операция занимает постоянное время.

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

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

T QList::takeLast()

Удаляет последний элемент в списке и возвращает его. Это то же самое, что и takeAt(size() - 1). Эта функция предполагает, что список не пуст. Чтобы избежать ошибок, вызовите isEmpty() перед вызовом этой функции.

Если этот список не общий, эта операция занимает постоянное время.

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

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

QSet<T> QList::toSet() const

Возвращает объект QSet с данными, содержащимися в этом QList. Так как QSet не допускает дубликатов, результирующий QSet может быть меньше, чем исходный список.

Пример:

QStringList list;
list << "Julia" << "Mike" << "Mike" << "Julia" << "Julia";

QSet<QString> set = list.toSet();
set.contains("Julia");  // returns true
set.contains("Mike");   // returns true
set.size();             // returns 2

См. также toVector(), fromSet() и QSet::fromList().

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

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

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

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

См. также fromStdList() и QVector::toStdVector().

QVector<T> QList::toVector() const

Возвращает объект QVector с данными, содержащимися в этом QList.

Пример:

QStringList list;
list << "Sven" << "Kim" << "Ola";

QVector<QString> vect = list.toVector();
// vect: ["Sven", "Kim", "Ola"]

См. также toSet(), fromVector() и QVector::fromList().

T QList::value(int i) const

Возвращает значение в позиции индекса i в списке.

Если индекс i находится вне границ, функция возвращает значение, созданное по умолчанию. Если вы уверены, что индекс будет в пределах границ, вы можете использовать at() вместо этого, что немного быстрее.

См. также at() и operator[]().

T QList::value(int i, const T &defaultValue) const

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

Если индекс i находится вне границ, функция возвращает defaultValue.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

T &QList::operator[](int i)

Возвращает элемент в позиции индекса i в виде изменяемой ссылки. i должен быть допустимой позицией индекса в списке (т.е., 0 <= i < size()).

Если эта функция вызывается для списка, который в настоящее время совместно используется, она вызовет копирование всех элементов. В противном случае эта функция выполняется за постоянное время. Если вы не хотите изменять список, используйте QList::at().

См. также at() и value().

const T &QList::operator[](int i) const

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

То же самое, что и at(). Эта функция выполняется за постоянное время.

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

uint qHash(const QList<T> &key, uint seed = 0)

Возвращает значение хэша для key, используя seed для инициализации расчёта.

Эта функция требует, чтобы функция qHash() была перегружена для типа значения T.

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

bool operator<(const QList<T> &lhs, const QList<T> &rhs)

Возвращает true, если список lhs лексикографически меньше, чем rhs; в противном случае возвращает false.

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

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

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

Записывает список list в поток out.

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

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

bool operator<=(const QList<T> &lhs, const QList<T> &rhs)

Возвращает true, если список lhs лексикографически меньше или равен rhs; в противном случае возвращает false.

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

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

bool operator>(const QList<T> &lhs, const QList<T> &rhs)

Возвращает true, если список lhs лексикографически больше, чем rhs; в противном случае возвращает false.

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

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

bool operator>=(const QList<T> &lhs, const QList<T> &rhs)

Возвращает true, если список lhs лексикографически больше или равен rhs; в противном случае возвращает false.

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

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

QDataStream &operator>>(QDataStream &in, QList<T> &list)

Читает список из потока in в list.

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

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

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

Spec-Zone.ru

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