En esta página

QLinkedList Class

template <typename T> class QLinkedList

La 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

Nota: Todas las funciones de esta clase son reentrantes.

Tipos Públicos

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)
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.