Spec-Zone.ru › Qt 6.0

Класс QMetaSequence

Класс QMetaSequence позволяет получить доступ к последовательным контейнерам, не зная их типов. Подробнее...

Заголовок: #include <QMetaSequence>
CMake: find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
С момента: Qt 6.0
Наследует: QMetaContainer
  • Список всех членов, включая унаследованные

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

void addValue(void *container, const void *value) const
void addValueAtBegin(void *container, const void *value) const
void addValueAtEnd(void *container, const void *value) const
bool canAddValue() const
bool canAddValueAtBegin() const
bool canAddValueAtEnd() const
bool canEraseRangeAtIterator() const
bool canEraseValueAtIterator() const
bool canGetValueAtConstIterator() const
bool canGetValueAtIndex() const
bool canGetValueAtIterator() const
bool canInsertValueAtIterator() const
bool canRemoveValue() const
bool canRemoveValueAtBegin() const
bool canRemoveValueAtEnd() const
bool canSetValueAtIndex() const
bool canSetValueAtIterator() const
void eraseRangeAtIterator(void *container, const void *iterator1, const void *iterator2) const
void eraseValueAtIterator(void *container, const void *iterator) const
void insertValueAtIterator(void *container, const void *iterator, const void *value) const
bool isSortable() const
void removeValue(void *container) const
void removeValueAtBegin(void *container) const
void removeValueAtEnd(void *container) const
void setValueAtIndex(void *container, qsizetype index, const void *value) const
void setValueAtIterator(const void *iterator, const void *value) const
void valueAtConstIterator(const void *iterator, void *result) const
void valueAtIndex(const void *container, qsizetype index, void *result) const
void valueAtIterator(const void *iterator, void *result) const
QMetaType valueMetaType() const

Статические открытые члены

QMetaSequence fromContainer()

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

Класс предоставляет набор примитивных операций с контейнерами, используя void* в качестве операндов. Таким образом, вы можете манипулировать универсальным контейнером, полученным из QVariant, не зная его тип.

Аргументы void* в различных методах обычно создаются с помощью QVariant соответствующего типа контейнера или значения и вызова его методов QVariant::data() или QVariant::constData(). Однако вы также можете передать обычные указатели на объекты типа контейнера или значения.

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

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

void QMetaSequence::addValue(void *container, const void *value) const

Добавляет value в container, если это возможно. Если canAddValue() возвращает false, value не добавляется. В противном случае, если canAddValueAtEnd() возвращает true, value добавляется в конец container. В противном случае, если canAddValueAtBegin() возвращает true, value добавляется в начало контейнера. В противном случае значение добавляется в неопределенное место или вообще не добавляется. Последнее имеет место для добавления значений в неупорядоченный контейнер, например QSet.

См. также canAddValue(), canAddValueAtBegin(), canAddValueAtEnd(), isSortable() и removeValue().

void QMetaSequence::addValueAtBegin(void *container, const void *value) const

Добавляет value в начало container, если это возможно. Если canAddValueAtBegin() возвращает false, value не добавляется.

См. также canAddValueAtBegin(), isSortable() и removeValueAtBegin().

void QMetaSequence::addValueAtEnd(void *container, const void *value) const

Добавляет value в конец container, если это возможно. Если canAddValueAtEnd() возвращает false, value не добавляется.

См. также canAddValueAtEnd(), isSortable() и removeValueAtEnd().

bool QMetaSequence::canAddValue() const

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

См. также addValue() и isSortable().

bool QMetaSequence::canAddValueAtBegin() const

Возвращает true если значения, добавленные с помощью addValue(), могут быть размещены в начале контейнера, в противном случае возвращает false.

См. также addValueAtBegin() и canAddValueAtEnd().

bool QMetaSequence::canAddValueAtEnd() const

Возвращает true если значения, добавленные с помощью addValue(), могут быть размещены в конце контейнера, в противном случае возвращает false.

См. также addValueAtEnd() и canAddValueAtBegin().

bool QMetaSequence::canEraseRangeAtIterator() const

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

bool QMetaSequence::canEraseValueAtIterator() const

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

См. также hasIterator() и eraseValueAtIterator().

bool QMetaSequence::canGetValueAtConstIterator() const

Возвращает true если базовый контейнер может извлечь значение, на которое указывает константный итератор, false в противном случае.

См. также hasConstIterator() и valueAtConstIterator().

bool QMetaSequence::canGetValueAtIndex() const

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

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

bool QMetaSequence::canGetValueAtIterator() const

Возвращает true если базовый контейнер может извлечь значение, на которое указывает неконстантный итератор, false в противном случае.

См. также hasIterator() и valueAtIterator().

bool QMetaSequence::canInsertValueAtIterator() const

Возвращает true если базовый контейнер может вставить новое значение, учитывая местоположение, указанное неконстантным итератором.

См. также hasIterator() и insertValueAtIterator().

bool QMetaSequence::canRemoveValue() const

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

См. также removeValue() и isSortable().

bool QMetaSequence::canRemoveValueAtBegin() const

Возвращает true если значения могут быть удалены из начала контейнера с помощью removeValue(), в противном случае возвращает false.

См. также removeValueAtBegin() и canRemoveValueAtEnd().

bool QMetaSequence::canRemoveValueAtEnd() const

Возвращает true если значения могут быть удалены из конца контейнера с помощью removeValue(), в противном случае возвращает false.

См. также removeValueAtEnd() и canRemoveValueAtBegin().

bool QMetaSequence::canSetValueAtIndex() const

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

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

bool QMetaSequence::canSetValueAtIterator() const

Возвращает true если базовый контейнер может записать в значение, на которое указывает неконстантный итератор, false в противном случае.

См. также hasIterator() и setValueAtIterator().

void QMetaSequence::eraseRangeAtIterator(void *container, const void *iterator1, const void *iterator2) const

Удаляет диапазон значений между итераторами iterator1 и iterator2 из container, если это возможно.

См. также canEraseValueAtIterator(), begin() и end().

void QMetaSequence::eraseValueAtIterator(void *container, const void *iterator) const

Удаляет значение, на которое указывает неконстантный iterator, из container, если это возможно.

См. также canEraseValueAtIterator(), begin() и end().

[static, since 6.0] template <typename T> QMetaSequence QMetaSequence::fromContainer()

Возвращает QMetaSequence, соответствующую типу, заданному в качестве шаблона параметра.

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

void QMetaSequence::insertValueAtIterator(void *container, const void *iterator, const void *value) const

Вставляет value в container, если это возможно, учитывая неконстантный iterator. Если canInsertValueAtIterator() возвращает false, то value не вставляется. В противном случае, если isSortable() возвращает true, то значение вставляется перед значением, на которое указывает iterator. В противном случае value вставляется в неопределенное место или не вставляется вообще. В последнем случае iterator используется как подсказка. Если он указывает на нужное место для value, операция может быть быстрее, чем addValue() без итератора.

См. также canInsertValueAtIterator(), isSortable(), begin() и end().

bool QMetaSequence::isSortable() const

Возвращает true если базовый контейнер сортируемый, в противном случае возвращает false. Контейнер считается сортируемым, если добавленные в него значения размещаются в определенном месте. Вставка или добавление в сортируемый контейнер всегда будут успешными. Вставка или добавление в несортируемый контейнер может не удаться, например, если контейнер — это QSet, который уже содержит вставляемое значение.

См. также addValue(), insertValueAtIterator(), canAddValueAtBegin(), canAddValueAtEnd(), canRemoveValueAtBegin() и canRemoveValueAtEnd().

void QMetaSequence::removeValue(void *container) const

Удаляет значение из container, если это возможно. Если canRemoveValue() возвращает false, то значение не удаляется. В противном случае, если canRemoveValueAtEnd() возвращает true, удаляется последнее значение в container. В противном случае, если canRemoveValueAtBegin() возвращает true, удаляется первое значение в container. В противном случае удаляется неопределенное значение или ничего.

См. также canRemoveValue(), canRemoveValueAtBegin(), canRemoveValueAtEnd(), isSortable() и addValue().

void QMetaSequence::removeValueAtBegin(void *container) const

Удаляет значение из начала container, если это возможно. Если canRemoveValueAtBegin() возвращает false, значение не удаляется.

См. также canRemoveValueAtBegin(), isSortable() и addValueAtBegin().

void QMetaSequence::removeValueAtEnd(void *container) const

Удаляет значение с конца container, если это возможно. Если canRemoveValueAtEnd() возвращает false, значение не удаляется.

См. также canRemoveValueAtEnd(), isSortable() и addValueAtEnd().

END_OF_DOCUMENT_MARKER

void QMetaSequence::setValueAtIndex(void *container, qsizetype index, const void *value) const

Перезаписывает значение по индексу index в container с использованием переданного в качестве параметра значения value, если это возможно.

См. также valueAtIndex() и canSetValueAtIndex().

void QMetaSequence::setValueAtIterator(const void *iterator, const void *value) const

Записывает value в значение, на которое указывает неконстантный iterator, если это возможно.

См. также valueAtIterator(), canSetValueAtIterator(), begin() и end().

void QMetaSequence::valueAtConstIterator(const void *iterator, void *result) const

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

См. также canGetValueAtConstIterator(), constBegin() и constEnd().

void QMetaSequence::valueAtIndex(const void *container, qsizetype index, void *result) const

Возвращает значение по индексу index в container и помещает его в память по адресу, указанному result, если это возможно.

См. также setValueAtIndex() и canGetValueAtIndex().

void QMetaSequence::valueAtIterator(const void *iterator, void *result) const

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

См. также setValueAtIterator(), canGetValueAtIterator(), begin() и end().

QMetaType QMetaSequence::valueMetaType() const

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

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

Spec-Zone.ru

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