QLinkedList Class
template <typename T> class QLinkedListLa clase QLinkedList es una clase plantilla que proporciona listas enlazadas. Más...
| Cabecera: | #include <QLinkedList> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core5Compat)target_link_libraries(mytarget PRIVATE Qt6::Core5Compat) |
| qmake: | QT += core5compat |
- Lista de todos los miembros, incluyendo los heredados
- QLinkedList es parte de Clases Implícitamente Compartidas.
Nota: Todas las funciones de esta clase son reentrantes.
Tipos Públicos
| class | const_iterator |
| class | iterator |
| ConstIterator | |
| Iterator | |
| const_pointer | |
| const_reference | |
| const_reverse_iterator | |
| difference_type | |
| pointer | |
| reference | |
| reverse_iterator | |
| size_type | |
| value_type |
Funciones Públicas
| QLinkedList() | |
| QLinkedList(std::initializer_list<T> list) | |
| QLinkedList(InputIterator first, InputIterator last) | |
| QLinkedList(const QLinkedList<T> &other) | |
| QLinkedList(QLinkedList<T> &&other) | |
| ~QLinkedList() | |
| void | append(const T &value) |
| T & | back() |
| const T & | back() const |
| QLinkedList<T>::iterator | begin() |
| QLinkedList<T>::const_iterator | begin() const |
| QLinkedList<T>::const_iterator | cbegin() const |
| QLinkedList<T>::const_iterator | cend() const |
| void | clear() |
| QLinkedList<T>::const_iterator | constBegin() const |
| QLinkedList<T>::const_iterator | constEnd() const |
| bool | contains(const T &value) const |
| int | count() const |
| int | count(const T &value) const |
| QLinkedList<T>::const_reverse_iterator | crbegin() const |
| QLinkedList<T>::const_reverse_iterator | crend() const |
| bool | empty() const |
| QLinkedList<T>::iterator | end() |
| QLinkedList<T>::const_iterator | end() const |
| bool | endsWith(const T &value) const |
| QLinkedList<T>::iterator | erase(QLinkedList<T>::iterator pos) |
| QLinkedList<T>::iterator | erase(QLinkedList<T>::iterator begin, QLinkedList<T>::iterator end) |
| T & | first() |
| const T & | first() const |
| T & | front() |
| const T & | front() const |
| QLinkedList<T>::iterator | insert(QLinkedList<T>::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<T>::reverse_iterator | rbegin() |
| QLinkedList<T>::const_reverse_iterator | rbegin() const |
| int | removeAll(const T &value) |
| void | removeFirst() |
| void | removeLast() |
| bool | removeOne(const T &value) |
| QLinkedList<T>::reverse_iterator | rend() |
| QLinkedList<T>::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) |
| QLinkedList<T> & | operator=(const QLinkedList<T> &other) |
| bool | operator==(const QLinkedList<T> &other) const |
Miembros Públicos Estáticos
| QLinkedList<T> | fromStdList(const std::list<T> &list) |
No Miembros Relacionados
| QDataStreamIfHasOStreamOperatorsContainer<QLinkedList<T>, T> | operator<<(QDataStream &out, const QLinkedList<T> &list) |
| QDataStreamIfHasIStreamOperatorsContainer<QLinkedList<T>, T> | operator>>(QDataStream &in, QLinkedList<T> &list) |
Descripción Detallada
QLinkedList<T> es una de las clases contenedoras genéricas de Qt. Almacena una lista de valores y proporciona acceso basado en iteradores así como inserciones y eliminaciones en tiempo constante.
QList<T> y QLinkedList<T> proporcionan una funcionalidad similar. He aquí una visión general:
- Para la mayoría de los propósitos, QList es la clase correcta a utilizar. Su API basada en índices es más conveniente que la API basada en iteradores de QLinkedList. Sus elementos ocupan posiciones de memoria adyacentes. También se expande a menos código en su ejecutable.
- Si necesita una lista enlazada real, con garantías de inserciones en tiempo constante en la mitad de la lista e iteradores a elementos en lugar de índices, utilice QLinkedList.
He aquí un ejemplo de una QLinkedList que almacena enteros y una QLinkedList que almacena valores QTime:
QLinkedList<int> integerList; QLinkedList<QTime> timeList;
QLinkedList almacena una lista de elementos. El constructor por defecto crea una lista vacía. Para insertar elementos en la lista, se puede utilizar operator<<():
QLinkedList<QString> list; list << "one" << "two" << "three"; // list: ["one", "two", "three"]
Si desea obtener el primer o último elemento de una lista enlazada, utilice first() o last(). Si desea eliminar un elemento de cualquiera de los extremos de la lista, utilice removeFirst() o removeLast(). Si desea eliminar todas las apariciones de un valor determinado en la lista, utilice removeAll().
Un requisito común es eliminar el primer o último elemento de la lista y hacer algo con él. Para ello, QLinkedList proporciona takeFirst() y takeLast(). He aquí un bucle que elimina los elementos de una lista de uno en uno y llama a delete sobre ellos:
QLinkedList<QWidget *> list; ... while (!list.isEmpty()) delete list.takeFirst();
El tipo de valor de QLinkedList debe ser un tipo de datos asignable. Esto cubre la mayoría de los tipos de datos que se usan comúnmente, pero el compilador no le permitirá, por ejemplo, almacenar un QWidget como valor; en su lugar, almacene un QWidget *. Algunas funciones tienen requisitos adicionales; por ejemplo, contains() y removeAll() esperan que el tipo de valor soporte operator==(). Estos requisitos se documentan para cada función.
Si desea insertar, modificar o eliminar elementos en medio de la lista, debe utilizar un iterador. QLinkedList proporciona tanto iteradores de estilo Java (QLinkedListIterator y QMutableLinkedListIterator) como iteradores de estilo STL (QLinkedList::const_iterator y QLinkedList::iterator). Consulte la documentación de estas clases para más detalles.
Ver también QLinkedListIterator, QMutableLinkedListIterator, y QList.
Documentación de tipos de miembros
QLinkedList::ConstIterator
Qt-style sinónimo de QLinkedList::const_iterator.
QLinkedList::Iterator
Qt-style sinónimo de QLinkedList::iterator.
QLinkedList::const_pointer
Typedef para const T *. Proporcionado para la compatibilidad STL.
QLinkedList::const_reference
Typedef para const T &. Proporcionado por compatibilidad con STL.
QLinkedList::const_reverse_iterator
El tippedef QLinkedList::const_reverse_iterator proporciona un iterador inverso const de estilo STL para QLinkedList.
Es simplemente un typedef para std::reverse_iterator<QLinkedList::const_iterator>.
Advertencia: Los iteradores sobre contenedores implícitamente compartidos no funcionan exactamente como los iteradores STL. Deberías evitar copiar un contenedor mientras los iteradores están activos en ese contenedor. Para más información, lee Problema de los iteradores compartidos implícitamente.
Véase también QLinkedList::rbegin(), QLinkedList::rend(), QLinkedList::reverse_iterator, y QLinkedList::const_iterator.
QLinkedList::difference_type
Typedef para ptrdiff_t. Proporcionado para la compatibilidad STL.
QLinkedList::pointer
Typedef para T *. Proporcionado para la compatibilidad STL.
QLinkedList::reference
Typedef para T &. Proporcionado para compatibilidad STL.
QLinkedList::reverse_iterator
El typedef QLinkedList::reverse_iterator proporciona un iterador inverso no-const de estilo STL para QLinkedList.
Es simplemente un typedef para std::reverse_iterator<QLinkedList::iterator>.
Advertencia: Los iteradores en contenedores implícitamente compartidos no funcionan exactamente como los iteradores STL. Deberías evitar copiar un contenedor mientras los iteradores están activos en ese contenedor. Para más información, lee Problema de los iteradores compartidos implícitamente.
Véase también QLinkedList::rbegin(), QLinkedList::rend(), QLinkedList::const_reverse_iterator, y QLinkedList::iterator.
QLinkedList::size_type
Typedef para int. Se proporciona por compatibilidad con STL.
QLinkedList::value_type
Typedef para T. Proporcionado para compatibilidad con STL.
Documentación de funciones miembro
[noexcept] QLinkedList::QLinkedList()
Construye una lista vacía.
QLinkedList::QLinkedList(std::initializer_list<T> list)
Construye una lista a partir de la std::initializer_list especificada por list.
Este constructor sólo está habilitado si el compilador soporta listas de inicializadores C++11.
template <typename InputIterator, QtPrivate::IfIsInputIterator<InputIterator> = true> QLinkedList::QLinkedList(InputIterator first, InputIterator last)
Construye una lista con el contenido en el rango del iterador [first, last).
El tipo de valor de InputIterator debe ser convertible a T.
QLinkedList::QLinkedList(const QLinkedList<T> &other)
Construye una copia de other.
Esta operación ocurre en tiempo constante, porque QLinkedList se comparte implícitamente. Esto hace que devolver un QLinkedList desde una función sea muy rápido. Si una instancia compartida es modificada, será copiada (copy-on-write), y esto toma tiempo lineal.
Véase también operator=().
[noexcept] QLinkedList::QLinkedList(QLinkedList<T> &&other)
Move-construye una instancia de QLinkedList, haciendo que apunte al mismo objeto al que apuntaba other.
QLinkedList::~QLinkedList()
Destruye la lista. Las referencias a los valores de la lista, y todos los iteradores sobre esta lista, dejan de ser válidos.
void QLinkedList::append(const T &value)
Inserta value al final de la lista.
Ejemplo:
QLinkedList<QString> list; list.append("one"); list.append("two"); list.append("three"); // list: ["one", "two", "three"]
Es lo mismo que list.insert(end(), value).
Véase también operator<<(), prepend(), y insert().
T &QLinkedList::back()
Esta función se proporciona por compatibilidad con STL. Es equivalente a last().
const T &QLinkedList::back() const
Se trata de una función sobrecargada.
QLinkedList<T>::iterator QLinkedList::begin()
Devuelve un iterador de estilo STL que apunta al primer elemento de la lista.
Véase también constBegin() y end().
[noexcept] QLinkedList<T>::const_iterator QLinkedList::begin() const
Se trata de una función sobrecargada.
[noexcept] QLinkedList<T>::const_iterator QLinkedList::cbegin() const
Devuelve un iterador const de estilo STL que apunta al primer elemento de la lista.
Véase también begin() y cend().
[noexcept] QLinkedList<T>::const_iterator QLinkedList::cend() const
Devuelve un iterador const de estilo STL que apunta al elemento imaginario después del último elemento de la lista.
Véase también cbegin() y end().
void QLinkedList::clear()
Elimina todos los elementos de la lista.
Véase también removeAll().
[noexcept] QLinkedList<T>::const_iterator QLinkedList::constBegin() const
Devuelve un iterador const de estilo STL que apunta al primer elemento de la lista.
Véase también begin() y constEnd().
[noexcept] QLinkedList<T>::const_iterator QLinkedList::constEnd() const
Devuelve un iterador const de estilo STL que apunta al elemento imaginario después del último elemento de la lista.
Véase también constBegin() y end().
bool QLinkedList::contains(const T &value) const
Devuelve true si la lista contiene una ocurrencia de value; en caso contrario devuelve false.
Esta función requiere que el tipo de valor tenga una implementación de operator==().
Véase también QLinkedListIterator::findNext() y QLinkedListIterator::findPrevious().
int QLinkedList::count() const
Igual que size().
int QLinkedList::count(const T &value) const
Devuelve el número de apariciones de value en la lista.
Esta función requiere que el tipo de valor tenga una implementación de operator==().
Véase también contains().
[noexcept] QLinkedList<T>::const_reverse_iterator QLinkedList::crbegin() const
Devuelve un iterador inverso de estilo STL que apunta al primer elemento de la lista, en orden inverso.
Véase también begin(), rbegin() y rend().
[noexcept] QLinkedList<T>::const_reverse_iterator QLinkedList::crend() const
Devuelve un iterador inverso de estilo STL que apunta al último elemento de la lista, en orden inverso.
Véase también end(), rend() y rbegin().
bool QLinkedList::empty() const
Esta función se proporciona por compatibilidad con STL. Es equivalente a isEmpty() y devuelve true si la lista está vacía.
QLinkedList<T>::iterator QLinkedList::end()
Devuelve un iterador estilo STL que apunta al elemento imaginario después del último elemento de la lista.
Véase también begin() y constEnd().
[noexcept] QLinkedList<T>::const_iterator QLinkedList::end() const
Se trata de una función sobrecargada.
bool QLinkedList::endsWith(const T &value) const
Devuelve true si la lista no está vacía y su último elemento es igual a value; en caso contrario devuelve false.
Véase también isEmpty() y last().
QLinkedList<T>::iterator QLinkedList::erase(QLinkedList<T>::iterator pos)
Elimina de la lista el elemento apuntado por el iterador pos y devuelve un iterador al siguiente elemento de la lista (que puede ser end()).
Véase también insert().
QLinkedList<T>::iterator QLinkedList::erase(QLinkedList<T>::iterator begin, QLinkedList<T>::iterator end)
Elimina todos los elementos de begin hasta (pero sin incluir) end.
Se trata de una función sobrecargada.
T &QLinkedList::first()
Devuelve una referencia al primer elemento de la lista. Esta función asume que la lista no está vacía.
Véase también last() y isEmpty().
const T &QLinkedList::first() const
Se trata de una función sobrecargada.
[static] QLinkedList<T> QLinkedList::fromStdList(const std::list<T> &list)
Devuelve un objeto QLinkedList con los datos contenidos en list. El orden de los elementos en QLinkedList es el mismo que en list.
Ejemplo:
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);
Véase también toStdList().
T &QLinkedList::front()
Esta función se proporciona por compatibilidad con STL. Es equivalente a first().
const T &QLinkedList::front() const
Se trata de una función sobrecargada.
QLinkedList<T>::iterator QLinkedList::insert(QLinkedList<T>::iterator before, const T &value)
Inserta value delante del elemento apuntado por el iterador before. Devuelve un iterador apuntando al elemento insertado.
Véase también erase().
bool QLinkedList::isEmpty() const
Devuelve true si la lista no contiene elementos; en caso contrario devuelve false.
Véase también size().
T &QLinkedList::last()
Devuelve una referencia al último elemento de la lista. Esta función asume que la lista no está vacía.
Véase también first() y isEmpty().
const T &QLinkedList::last() const
Se trata de una función sobrecargada.
void QLinkedList::pop_back()
Esta función se proporciona por compatibilidad con STL. Es equivalente a removeLast().
void QLinkedList::pop_front()
Esta función se proporciona por compatibilidad con STL. Es equivalente a removeFirst().
void QLinkedList::prepend(const T &value)
Inserta value al principio de la lista.
Ejemplo:
QLinkedList<QString> list; list.prepend("one"); list.prepend("two"); list.prepend("three"); // list: ["three", "two", "one"]
Es lo mismo que list.insert(begin(), value).
Véase también append() y insert().
void QLinkedList::push_back(const T &value)
Esta función se proporciona por compatibilidad con STL. Es equivalente a append(value).
void QLinkedList::push_front(const T &value)
Esta función se proporciona por compatibilidad con STL. Es equivalente a prepend(value).
QLinkedList<T>::reverse_iterator QLinkedList::rbegin()
Devuelve un iterador inverso estilo STL que apunta al primer elemento de la lista, en orden inverso.
Véase también begin(), crbegin() y rend().
[noexcept] QLinkedList<T>::const_reverse_iterator QLinkedList::rbegin() const
Se trata de una función sobrecargada.
int QLinkedList::removeAll(const T &value)
Elimina todas las apariciones de value en la lista.
Ejemplo:
QList<QString> list; list << "sun" << "cloud" << "sun" << "rain"; list.removeAll("sun"); // list: ["cloud", "rain"]
Esta función requiere que el tipo de valor tenga una implementación de operator==().
Véase también insert().
void QLinkedList::removeFirst()
Elimina el primer elemento de la lista.
Es lo mismo que erase(begin()).
Véase también removeLast() y erase().
void QLinkedList::removeLast()
Elimina el último elemento de la lista.
Véase también removeFirst() y erase().
bool QLinkedList::removeOne(const T &value)
Elimina las primeras apariciones de value en la lista. Si tiene éxito, devuelve true; si no, devuelve false.
Ejemplo:
QList<QString> list; list << "sun" << "cloud" << "sun" << "rain"; list.removeOne("sun"); // list: ["cloud", "sun", "rain"]
Esta función requiere que el tipo de valor tenga una implementación de operator==().
Véase también insert().
QLinkedList<T>::reverse_iterator QLinkedList::rend()
Devuelve un iterador inverso estilo STL que apunta al último elemento de la lista, en orden inverso.
Véase también end(), crend() y rbegin().
[noexcept] QLinkedList<T>::const_reverse_iterator QLinkedList::rend() const
Se trata de una función sobrecargada.
int QLinkedList::size() const
Devuelve el número de elementos de la lista.
Véase también isEmpty() y count().
bool QLinkedList::startsWith(const T &value) const
Devuelve true si la lista no está vacía y su primer elemento es igual a value; en caso contrario devuelve false.
Véase también isEmpty() y first().
[noexcept] void QLinkedList::swap(QLinkedList<T> &other)
Intercambia la lista other con esta lista. Esta operación es muy rápida y nunca falla.
T QLinkedList::takeFirst()
Elimina el primer elemento de la lista y lo devuelve.
Si no utiliza el valor devuelto, removeFirst() es más eficiente.
Véase también takeLast() y removeFirst().
T QLinkedList::takeLast()
Elimina el último elemento de la lista y lo devuelve.
Si no utiliza el valor devuelto, removeLast() es más eficiente.
Véase también takeFirst() y removeLast().
std::list<T> QLinkedList::toStdList() const
Devuelve un objeto std::list con los datos contenidos en este QLinkedList. Ejemplo:
QLinkedList<double> list; list << 1.2 << 0.5 << 3.14; std::list<double> stdlist = list.toStdList();
Véase también fromStdList().
bool QLinkedList::operator!=(const QLinkedList<T> &other) const
Devuelve true si other no es igual a esta lista; en caso contrario devuelve false.
Dos listas se consideran iguales si contienen los mismos valores en el mismo orden.
Esta función requiere que el tipo de valor implemente operator==().
Véase también operator==().
QLinkedList<T> QLinkedList::operator+(const QLinkedList<T> &other) const
Devuelve una lista que contiene todos los elementos de esta lista seguidos de todos los elementos de la lista other.
Véase también operator+=().
QLinkedList<T> &QLinkedList::operator+=(const QLinkedList<T> &other)
Añade los elementos de la lista other a esta lista y devuelve una referencia a esta lista.
Véase también operator+() y append().
QLinkedList<T> &QLinkedList::operator+=(const T &value)
Añade value a la lista.
Se trata de una función sobrecargada.
QLinkedList<T> &QLinkedList::operator<<(const QLinkedList<T> &other)
Añade los elementos de la lista other a esta lista y devuelve una referencia a esta lista.
Véase también operator+=() y append().
QLinkedList<T> &QLinkedList::operator<<(const T &value)
Añade value a la lista.
Se trata de una función sobrecargada.
QLinkedList<T> &QLinkedList::operator=(const QLinkedList<T> &other)
Asigna other a esta lista y devuelve una referencia a esta lista.
bool QLinkedList::operator==(const QLinkedList<T> &other) const
Devuelve true si other es igual a esta lista; en caso contrario devuelve false.
Dos listas se consideran iguales si contienen los mismos valores en el mismo orden.
Esta función requiere que el tipo de valor implemente operator==().
Véase también operator!=().
No miembros relacionados
template <typename T> QDataStreamIfHasOStreamOperatorsContainer<QLinkedList<T>, T> operator<<(QDataStream &out, const QLinkedList<T> &list)
Escribe la lista enlazada list en el flujo out.
Esta función requiere que el tipo de valor implemente operator<<().
Ver también Formato de los operadores QDataStream.
template <typename T> QDataStreamIfHasIStreamOperatorsContainer<QLinkedList<T>, T> operator>>(QDataStream &in, QLinkedList<T> &list)
Lee una lista enlazada del flujo in en list.
Esta función requiere que el tipo de valor implemente operator>>().
Véase también Formato de los operadores QDataStream.
© 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.