QMetaSequence Class
La clase QMetaSequence permite el acceso de tipo borrado a contenedores secuenciales. Más...
| Cabecera: | #include <QMetaSequence> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core)target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| Desde: | Qt 6.0 |
| Hereda: | QMetaContainer |
Esta clase es igual-comparable.
Tipos Públicos
(since 6.11) class | Iterable |
Funciones Públicas
| 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 |
Miembros públicos estáticos
(since 6.0) QMetaSequence | fromContainer() |
No miembros relacionados
(since 6.0) bool | operator!=(const QMetaSequence &lhs, const QMetaSequence &rhs) |
(since 6.0) bool | operator==(const QMetaSequence &lhs, const QMetaSequence &rhs) |
Descripción Detallada
La clase proporciona una serie de operaciones contenedoras primitivas, utilizando void* como operandos. De esta forma, se puede manipular un contenedor genérico recuperado de una Variant sin conocer su tipo.
Los argumentos void* de los distintos métodos se crean normalmente utilizando un QVariant del tipo de contenedor o valor respectivo, y llamando a sus métodos QVariant::data() o QVariant::constData(). Sin embargo, también se pueden pasar punteros planos a objetos del tipo contenedor o valor.
La invalidación de iteradores sigue las reglas dadas por los contenedores subyacentes y no se expresa en la API. Por lo tanto, para un contenedor verdaderamente genérico, cualquier iterador debe considerarse inválido después de cualquier operación de escritura.
Documentación de las funciones miembro
void QMetaSequence::addValue(void *container, const void *value) const
Añade value a container si es posible. Si canAddValue() devuelve false, no se añade value. De lo contrario, si canAddValueAtEnd() devuelve true, se añade value al final de container. De lo contrario, si canAddValueAtBegin() devuelve true, se añade value al principio del contenedor. En caso contrario, el valor se añade en un lugar no especificado o no se añade en absoluto. Este último es el caso para añadir valores a un contenedor desordenado, por ejemplo QSet.
Véase también canAddValue(), canAddValueAtBegin(), canAddValueAtEnd(), isSortable() y removeValue().
void QMetaSequence::addValueAtBegin(void *container, const void *value) const
Añade value al principio de container si es posible. Si canAddValueAtBegin() devuelve false, no se añade value.
Véase también canAddValueAtBegin(), isSortable() y removeValueAtBegin().
void QMetaSequence::addValueAtEnd(void *container, const void *value) const
Añade value al final de container si es posible. Si canAddValueAtEnd() devuelve false, no se añade value.
Véase también canAddValueAtEnd(), isSortable() y removeValueAtEnd().
bool QMetaSequence::canAddValue() const
Devuelve true si se pueden añadir valores al contenedor, false en caso contrario.
Véase también addValue() y isSortable().
bool QMetaSequence::canAddValueAtBegin() const
Devuelve true si los valores añadidos mediante addValue() pueden colocarse al principio del contenedor; en caso contrario, devuelve false.
Véase también addValueAtBegin() y canAddValueAtEnd().
bool QMetaSequence::canAddValueAtEnd() const
Devuelve true si los valores añadidos mediante addValue() pueden colocarse al final del contenedor; en caso contrario, devuelve false.
Véase también addValueAtEnd() y canAddValueAtBegin().
bool QMetaSequence::canEraseRangeAtIterator() const
Devuelve true si un rango entre dos iteradores puede ser borrado del contenedor, false en caso contrario.
bool QMetaSequence::canEraseValueAtIterator() const
Devuelve true si el valor apuntado por un iterador no-const puede ser borrado, false en caso contrario.
Véase también hasIterator() y eraseValueAtIterator().
bool QMetaSequence::canGetValueAtConstIterator() const
Devuelve true si el contenedor subyacente puede recuperar el valor apuntado por un iterador const, false en caso contrario.
Véase también hasConstIterator() y valueAtConstIterator().
bool QMetaSequence::canGetValueAtIndex() const
Devuelve true si se pueden recuperar valores del contenedor por índice, en caso contrario false.
Véase también valueAtIndex().
bool QMetaSequence::canGetValueAtIterator() const
Devuelve true si el contenedor subyacente puede recuperar el valor apuntado por un iterador no-const, false en caso contrario.
Véase también hasIterator() y valueAtIterator().
bool QMetaSequence::canInsertValueAtIterator() const
Devuelve true si el contenedor subyacente puede insertar un nuevo valor, teniendo en cuenta la ubicación apuntada por un iterador no-const.
Véase también hasIterator() y insertValueAtIterator().
bool QMetaSequence::canRemoveValue() const
Devuelve true si los valores se pueden eliminar del contenedor, false en caso contrario.
Véase también removeValue() y isSortable().
bool QMetaSequence::canRemoveValueAtBegin() const
Devuelve true si se pueden eliminar valores del principio del contenedor utilizando removeValue(), en caso contrario devuelve false.
Véase también removeValueAtBegin() y canRemoveValueAtEnd().
bool QMetaSequence::canRemoveValueAtEnd() const
Devuelve true si se pueden eliminar valores del final del contenedor utilizando removeValue(), en caso contrario devuelve false.
Véase también removeValueAtEnd() y canRemoveValueAtBegin().
bool QMetaSequence::canSetValueAtIndex() const
Devuelve true si se puede escribir un valor en el contenedor por índice, en caso contrario false.
Véase también setValueAtIndex().
bool QMetaSequence::canSetValueAtIterator() const
Devuelve true si el contenedor subyacente puede escribir en el valor apuntado por un iterador no-const, false en caso contrario.
Véase también hasIterator() y setValueAtIterator().
void QMetaSequence::eraseRangeAtIterator(void *container, const void *iterator1, const void *iterator2) const
Borra el rango de valores entre los iteradores iterator1 y iterator2 del container, si es posible.
Véase también canEraseValueAtIterator(), begin(), y end().
void QMetaSequence::eraseValueAtIterator(void *container, const void *iterator) const
Borra el valor apuntado por el no-const iterator del container, si es posible.
Véase también canEraseValueAtIterator(), begin(), y end().
[static constexpr, since 6.0] template <typename T> QMetaSequence QMetaSequence::fromContainer()
Devuelve el QMetaSequence correspondiente al tipo dado como parámetro de plantilla.
Esta función se introdujo en Qt 6.0.
void QMetaSequence::insertValueAtIterator(void *container, const void *iterator, const void *value) const
Inserta value en container, si es posible, teniendo en cuenta el no-const iterator. Si canInsertValueAtIterator() devuelve false, el valor value no se inserta. Si isSortable() devuelve true, el valor se inserta antes del valor apuntado por iterator. De lo contrario, value se inserta en un lugar no especificado o no se inserta en absoluto. En este último caso, se toma iterator como pista. Si apunta al lugar correcto para el value, la operación puede ser más rápida que un addValue() sin iterador.
Véase también canInsertValueAtIterator(), isSortable(), begin() y end().
bool QMetaSequence::isSortable() const
Devuelve true si el contenedor subyacente es ordenable, en caso contrario devuelve false. Un contenedor se considera ordenable si los valores que se le añaden se colocan en una ubicación definida. La inserción o adición a un contenedor ordenable siempre tendrá éxito. La inserción o adición a un contenedor no ordenable puede no tener éxito, por ejemplo si el contenedor es un QSet que ya contiene el valor que se está insertando.
Véase también addValue(), insertValueAtIterator(), canAddValueAtBegin(), canAddValueAtEnd(), canRemoveValueAtBegin() y canRemoveValueAtEnd().
void QMetaSequence::removeValue(void *container) const
Elimina un valor de container si es posible. Si canRemoveValue() devuelve false, no se elimina ningún valor. Si canRemoveValueAtEnd() devuelve true, se elimina el último valor de container. Si canRemoveValueAtBegin() devuelve true, se elimina el primer valor de container. Si no, se elimina un valor no especificado o nada.
Véase también canRemoveValue(), canRemoveValueAtBegin(), canRemoveValueAtEnd(), isSortable() y addValue().
void QMetaSequence::removeValueAtBegin(void *container) const
Elimina un valor del principio de container si es posible. Si canRemoveValueAtBegin() devuelve false, el valor no se elimina.
Véase también canRemoveValueAtBegin(), isSortable() y addValueAtBegin().
void QMetaSequence::removeValueAtEnd(void *container) const
Elimina un valor del final de container si es posible. Si canRemoveValueAtEnd() devuelve false, el valor no se elimina.
Véase también canRemoveValueAtEnd(), isSortable() y addValueAtEnd().
void QMetaSequence::setValueAtIndex(void *container, qsizetype index, const void *value) const
Sobrescribe el valor en index en container usando el value pasado como parámetro si eso es posible.
Véase también valueAtIndex() y canSetValueAtIndex().
void QMetaSequence::setValueAtIterator(const void *iterator, const void *value) const
Escribe value en el valor apuntado por el no-const iterator, si es posible.
Véase también valueAtIterator(), canSetValueAtIterator(), begin(), y end().
void QMetaSequence::valueAtConstIterator(const void *iterator, void *result) const
Recupera el valor apuntado por la const iterator y lo almacena en la posición de memoria apuntada por result, si es posible.
Véase también canGetValueAtConstIterator(), constBegin() y constEnd().
void QMetaSequence::valueAtIndex(const void *container, qsizetype index, void *result) const
Recupera el valor en index en container y lo coloca en la posición de memoria apuntada por result, si eso es posible.
Véase también setValueAtIndex() y canGetValueAtIndex().
void QMetaSequence::valueAtIterator(const void *iterator, void *result) const
Recupera el valor apuntado por el no-const iterator y lo almacena en la posición de memoria apuntada por result, si es posible.
Véase también setValueAtIterator(), canGetValueAtIterator(), begin() y end().
QMetaType QMetaSequence::valueMetaType() const
Devuelve el metatipo de los valores almacenados en el contenedor.
No miembros relacionados
[noexcept, since 6.0] bool operator!=(const QMetaSequence &lhs, const QMetaSequence &rhs)
Devuelve true si el QMetaSequence lhs representa un tipo de contenedor diferente al QMetaSequence rhs , en caso contrario devuelve false.
Esta función se introdujo en Qt 6.0.
[noexcept, since 6.0] bool operator==(const QMetaSequence &lhs, const QMetaSequence &rhs)
Devuelve true si QMetaSequence lhs representa el mismo tipo de contenedor que QMetaSequence rhs , en caso contrario devuelve false.
Esta función se introdujo en Qt 6.0.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.