list.h

Clase plantilla wxList < T >

wxList<T> es una clase heredada similar a std::list<T*>.

template<typename T>
class wxList< T >

Nota: Al igual que el resto de clases contenedoras heredadas, esta clase no debería utilizarse en el código nuevo.

Esta clase es similar a las otras clases contenedoras en que proporciona todas las funciones habituales de su homóloga de la biblioteca estándar, std::list. Sin embargo, a diferencia de las otras clases, esta clase siempre almacena punteros a los objetos y no los objetos en sí, es decir, su tipo_valor se define como T*.

Además, wxList<T> sólo destruye un objeto después de eliminarlo si se ha llamado a wxList<T>::DeleteContents, es decir, no gestiona por defecto la memoria de sus elementos. wxList<T> no es una plantilla real y requiere que se declare y defina cada clase wxList<T> en el programa. Esto se hace con las macros WX_DECLARE_LIST y WX_DEFINE_LIST (ver ejemplo). Esperamos poder proporcionar en el futuro una clase de plantilla adecuada que proporcione tanto la STL std::list como la antigua API wxList.

Por favor, consultar la documentación de STL std:: list ( ver https://en.cppreference.com/w/cpp/container/list) para más información sobre cómo usar la clase. A continuación documentamos tanto la STL soportada como la API heredada que se originó a partir de la antigua clase wxList y que aún puede utilizarse alternativamente para la misma clase.

// this part might be in a header or source (.cpp) file
class MyListElement
{
    ... // whatever
};
 
// this macro declares and partly implements MyList class
WX_DECLARE_LIST(MyListElement, MyList);
 
...
 
// the only requirement for the rest is to be AFTER the full declaration of
// MyListElement (for WX_DECLARE_LIST forward declaration is enough), but
// usually it will be found in the source file and not in the header
 
#include <wx/listimpl.cpp>
WX_DEFINE_LIST(MyList);
 
 
MyList list;
MyListElement element;
list.Append(&element);     // ok
list.Append(17);           // error: incorrect type
 
// let's iterate over the list in STL syntax
MyList::iterator iter;
for (iter = list.begin(); iter != list.end(); ++iter)
{
    MyListElement *current = *iter;
 
    ...process the current element...
}
 
// the same with the legacy API from the old wxList class
MyList::compatibility_iterator node = list.GetFirst();
while (node)
{
    MyListElement *current = node->GetData();
 
    ...process the current element...
 
    node = node->GetNext();
}

Por compatibilidad con versiones anteriores se siguen definiendo las clases wxList y wxStringList, pero su uso está obsoleto y desaparecerán por completo en las versiones futuras. Se desaconseja especialmente el uso de esta última ya que no sólo es insegura sino que además es mucho menos eficiente que la clase wxclasswxArrayString.

Parámetros de plantilla

T
El tipo almacenado en los nodos wxList.

Funciones miembro

wxList()

template<typename T > wxList< T >::wxList()

Constructor por defecto.

wxList()

template<typename T > wxList< T >::wxList( size_t count, T * elements[] )

Constructor que inicializa la lista con un array de count elementos.

~wxList()

template<typename T > wxList< T >::~wxList()

Destruye la lista, pero no borra los objetos almacenados en ella a menos que se haya llamado a DeleteContents(true).

Append()

template<typename T > wxList<T>::compatibility_iterator wxList< T >::Append(T * object)

Añade el puntero al object a la lista.

assign()

template<typename T > void wxList< T >::assign( const_iterator first, const const_iterator & last )

Borra la lista y añade los elementos del first al last de otra lista a ella.

assign()

template<typename T > void wxList< T >::assign( size_type n, const_reference v = value_type() )

Borra la lista y añade n elementos con valor v a la misma.

AsVector()

template<typename T > wxVector<T> wxList< T >::AsVector() const

Devuelve un wxVector que contiene los elementos de la lista.

back()

template<typename T > reference wxList< T >::back()

Devuelve el último elemento de la lista.

back()

template<typename T > const_reference wxList< T >::back() const

Devuelve el último elemento de la lista como una referencia constante.

begin()

template<typename T > iterator wxList< T >::begin()

Devuelve un iterador que apunta al principio de la lista.

begin()

template<typename T > const_iterator wxList< T >::begin() const

Devuelve un iterador constante que apunta al principio de la lista.

Clear()

template<typename T > void wxList< T >::Clear()

Borra la lista.

Elimina los objetos reales si DeleteContents( true ) fue llamado previamente.

clear()

template<typename T > void wxList< T >::clear()

Elimina todos los elementos de la lista.

DeleteContents()

template<typename T > void wxList< T >::DeleteContents(bool destroy)

Si destroy es true, indica a la lista que llame a delete sobre los objetos almacenados en la lista cada vez que sean eliminados.

Por defecto es false.

DeleteNode()

template<typename T > bool wxList< T >::DeleteNode(const compatibility_iterator & iter)

Elimina el elemento dado referido por iter de la lista si iter es un iterador válido.

Devuelve true si tiene éxito.

Borra el objeto actual si DeleteContents( true ) fue llamado previamente.

DeleteObject()

template<typename T > bool wxList< T >::DeleteObject(T * object)

Encuentra el objeto dado y lo elimina de la lista, devolviendo true si tiene éxito.

Elimina el objeto si DeleteContents( true ) fue llamado previamente.

empty()

template<typename T > bool wxList< T >::empty() const

Devuelve true si la lista está vacía.

end()

template<typename T > const_iterator wxList< T >::end() const

Devuelve un iterador constante que apunta al final de la lista.

end()

template<typename T > iterator wxList< T >::end() const

Devuelve un iterador que apunta al final de la lista.

Erase()

template<typename T > void wxList< T >::Erase(const compatibility_iterator & iter)

Elimina el elemento referido a iter.

Elimina el objeto real si DeleteContents( true ) fue llamado previamente.

erase()

template<typename T > iterator wxList< T >::erase( const iterator & first, const iterator & last )

Borra los elementos del first al last.

erase()

template<typename T > iterator wxList< T >::erase(const iterator & it)

Borra el elemento dado.

Find()

template<typename T > wxList<T>::compatibility_iterator wxList< T >::Find(T * object) const

Devuelve el iterador que hace referencia al objeto o nullptr si no se encuentra ninguno.

front()

template<typename T > reference wxList< T >::front() const

Devuelve el primer elemento de la lista.

front()

template<typename T > const_reference wxList< T >::front() const

Devuelve el primer elemento de la lista como una referencia constante.

GetCount()

template<typename T > size_t wxList< T >::GetCount() const

Devuelve el número de elementos de la lista.

GetFirst()

template<typename T > wxList<T>::compatibility_iterator wxList< T >::GetFirst() const

Devuelve el primer iterador de la lista (nullptr si la lista está vacía).

GetLast()

template<typename T > wxList<T>::compatibility_iterator wxList< T >::GetLast() const

Devuelve el último iterador de la lista (nullptr si la lista está vacía).

IndexOf()

template<typename T > int wxList< T >::IndexOf(T * obj) const

Devuelve el índice de obj dentro de la lista o wxNOT_FOUND si obj no se encuentra en la lista.

insert()

template<typename T > iterator wxList< T >::insert(const iterator & it)

Inserta un elemento en la cabecera de la lista.

insert()

template<typename T > void wxList< T >::insert( const iterator & it, const_iterator first, const const_iterator & last )

Inserta varios elementos en la posición dada.

insert()

template<typename T > void wxList< T >::insert( const iterator & it, size_type n )

Inserta un elemento en la posición dada.

Insert()

template<typename T > wxList<T>::compatibility_iterator wxList< T >::Insert( compatibility_iterator iter, T * object )

Inserta el objeto antes del objeto referido a iter.

Insert()

template<typename T > wxList<T>::compatibility_iterator wxList< T >::Insert( size_t position, T * object )

Inserta el objeto en la posición.

Insert()

template<typename T > wxList<T>::compatibility_iterator wxList< T >::Insert(T * object)

Inserta el objeto al principio de la lista.

IsEmpty()

template<typename T > bool wxList< T >::IsEmpty() const

Devuelve true si la lista está vacía, false en caso contrario.

Item()

template<typename T > wxList<T>::compatibility_iterator wxList< T >::Item(size_t index) const

Devuelve el iterador que se refiere al objeto en el índice dado en la lista.

max_size()

template<typename T > size_type wxList< T >::max_size() const

Devuelve el mayor tamaño posible de la lista.

Member()

template<typename T > bool wxList< T >::Member(T * object) const

Comprueba si el objeto está presente en la lista.

Nth()

template<typename T > wxList<T>::compatibility_iterator wxList< T >::Nth(int n) const

Obsoleta: Esta función está obsoleta, utilizar Item() en su lugar.

Number()

template<typename T > int wxList< T >::Number() const

Obsoleta: Esta función está obsoleta, utilizar GetCount en su lugar.

Devuelve el número de elementos de la lista.

pop_back()

template<typename T > void wxList< T >::pop_back()

Elimina el último elemento de la lista.

pop_front()

template<typename T > void wxList< T >::pop_front()

Elimina el primer elemento de la lista.

push_back()

template<typename T > void wxList< T >::push_back(const_reference v = value_type())

Añade un elemento al final de la lista.

push_front()

template<typename T > void wxList< T >::push_front(const_reference v = value_type())

Añade un elemento al principio de la lista.

rbegin()

template<typename T > reverse_iterator wxList< T >::rbegin()

Devuelve un iterador inverso que apunta al principio de la lista invertida.

rbegin()

template<typename T > const_reverse_iterator wxList< T >::rbegin() const

Devuelve un iterador inverso const que apunta al principio de la lista invertida.

remove()

template<typename T > void wxList< T >::remove(const_reference v)

Elimina un elemento de la lista.

rend()

template<typename T > reverse_iterator wxList< T >::rend()

Devuelve un iterador inverso que apunta al final de la lista invertida.

rend()

template<typename T > const_reverse_iterator wxList< T >::rend() const

Devuelve un iterador inverso constante que apunta al final de la lista invertida.

resize()

template<typename T > void wxList< T >::resize( size_type n, value_type v = value_type() )

Cambia el tamaño de la lista.

Si la lista es más larga que n, los elementos se eliminan hasta que la lista tenga una longitud n. Si la lista es más corta que n, los elementos con el valor v se añaden a la lista hasta que la lista tenga una longitud n.

reverse()

template<typename T > void wxList< T >::reverse()

Invierte la lista.

size()

template<typename T > size_type wxList< T >::size() const

Devuelve el tamaño de la lista.

Sort()

template<typename T > void wxList< T >::Sort(wxSortCompareFunction compfunc)

Permite ordenar listas arbitrarias proporcionando una función para comparar dos elementos de la lista.

Utilizamos la función qsort del sistema para el proceso de ordenación propiamente dicho.