Clase wxArrayString
wxArrayString es un contenedor eficiente para almacenar objetos wxString.
Jerarquía:

Tiene las mismas características que todas las clases wxArray, es decir, se expande dinámicamente cuando se le añaden nuevos elementos (por lo que es tan fácil de usar como una lista enlazada), pero el tiempo de acceso a los elementos es constante, en lugar de ser lineal en número de elementos como en el caso de las listas enlazadas. También es muy eficiente en tamaño y no ocupa más espacio que un array C de tipo wxString[] (wxArrayString utiliza su conocimiento del interior de la clase wxString para conseguirlo).
Esta clase se utiliza de la misma manera que otras matrices dinámicas(), excepto que no se necesita una declaración WX_DEFINE_ARRAY para ella. Cuando se añade o inserta una cadena en la matriz, se crea una copia de la cadena, por lo que la cadena original puede ser eliminada de forma segura (por ejemplo, si era un puntero wxChar * la memoria que estaba utilizando puede ser liberada inmediatamente después de esto). En general, no hay necesidad de preocuparse por la asignación de memoria de cadena cuando se utiliza esta clase - siempre se liberará la memoria que utiliza a sí mismo.
Las referencias devueltas por wxArrayString::Item, wxArrayString::Last o wxArrayString::operator[] no son constantes, por lo que los elementos del array pueden ser modificados en su lugar de esta forma:
array.Last().MakeUpper();
Nota: Ninguno de los métodos de wxArrayString es virtual, incluido su destructor, por lo que esta clase no debe utilizarse como clase base.
Aunque esto no es cierto estrictamente hablando, esta clase puede ser considerada como una especialización de la clase wxArray para los datos miembro de wxString: no está implementada como tal, pero tiene todas las funciones de wxArray.
También tiene el conjunto completo de métodos compatibles con std::vector<wxString>, incluyendo las clases nested iterator y const_iterator que deberían usarse en el nuevo código para compatibilidad con las futuras versiones de wxWidgets.
Definiciones de tipo miembro
CompareFunction()
El tipo de función utilizado con wxArrayString::Sort().
Esta función utiliza las mismas convenciones que la función de comparación estándar qsort(), es decir, debe devolver un valor negativo si el primer argumento es menor que el segundo, un valor positivo si el primer argumento es mayor que el segundo y 0 si los argumentos son iguales.
Funciones miembro
wxArrayString()
wxArrayString::wxArrayString()
Constructor por defecto.
wxArrayString()
wxArrayString::wxArrayString(const wxArrayString & array)
Constructor copia.
wxArrayString()
wxArrayString::wxArrayString( size_t sz, const char ** arr )
Constructor a partir de un array de cadenas en C.
Pasar un tamaño sz y un array arr.
wxArrayString()
wxArrayString::wxArrayString( size_t sz, const wchar_t ** arr )
Constructor a partir de un array de cadenas en C.
Pasar un tamaño sz y un array arr.
wxArrayString()
wxArrayString::wxArrayString( size_t sz, const wxString * arr )
Constructor a partir de un array wxString.
Pasar un tamaño sz y un array arr.
wxArrayString()
template<typename T > wxArrayString::wxArrayString(std::initializer_list< T > list)
Construye el contenedor con el contenido de la lista initializer_list.
~wxArrayString()
wxArrayString::~wxArrayString()
El destructor libera la memoria ocupada por el array strings.
Por razones de rendimiento no es virtual, por lo que no se debe derivar de esta clase.
Add()
size_t wxArrayString::Add( const wxString & str, size_t copies = 1 )
Añade el número dado de copias del nuevo elemento str a la matriz y devuelve el índice del primer elemento nuevo de la matriz.
Alloc()
void wxArrayString::Alloc(size_t nCount)
Preasigna memoria suficiente para almacenar nCount elementos.
Esta función puede utilizarse para mejorar el rendimiento de la clase array antes de añadir un número conocido de elementos de forma consecutiva.
Clear()
void wxArrayString::Clear()
Borra el contenido del array y libera memoria.
Empty()
void wxArrayString::Empty()
Vacía el array: después de una llamada a esta función GetCount() devolverá 0.
Sin embargo, esta función no libera la memoria utilizada por el array, por lo que debe utilizarse cuando el array vaya a reutilizarse para almacenar otras cadenas. En caso contrario, se debe utilizar Clear() para vaciar la matriz y liberar memoria.
GetCount()
size_t wxArrayString::GetCount() const
Devuelve el número de elementos de la matriz.
Index()
int wxArrayString::Index( const wxString & str, bool bCase = true, bool bFromEnd = false ) const
Busca str en la matriz, empezando por el principio si bFromEnd es falso o por el final en caso contrario.
Si bCase es true, la comparación distingue entre mayúsculas y minúsculas (por defecto), en caso contrario se ignoran las mayúsculas y minúsculas.
Esta función utiliza la búsqueda lineal para wxArrayString. Devuelve el índice del primer elemento encontrado o wxNOT_FOUND si no hay coincidencia.
Insert()
void wxArrayString::Insert( const wxString & str, size_t nIndex, size_t copies = 1 )
Inserta el número dado de copias de str en el array antes del elemento del array en la posición nIndex.
Así, por ejemplo, para insertar la cadena al principio de la matriz se escribiría:
Insert("foo", 0);
Si nIndex es igual a GetCount() esta función se comporta como Add().
IsEmpty()
bool wxArrayString::IsEmpty() const
Devuelve true si el array está vacío, false en caso contrario.
Esta función devuelve el mismo resultado que GetCount() == 0 pero probablemente es más fácil de leer.
Item()
wxString& wxArrayString::Item(size_t nIndex)
Devuelve el elemento del array en la posición nIndex.
Si se intenta acceder a un elemento más allá del final del array en modo depuración, se producirá un error de aserción, pero en modo liberación no se realiza ninguna comprobación.
Item()
const wxString& wxArrayString::Item(size_t nIndex) const
Devuelve el elemento del array en la posición nIndex.
Si se intenta acceder a un elemento más allá del final del array en modo depuración, se producirá un error de aserción, pero en modo liberación no se realiza ninguna comprobación.
Last()
wxString& wxArrayString::Last()
Devuelve el último elemento del array.
Si se intenta acceder al último elemento de una matriz vacía, se producirá un error de afirmación en la compilación de depuración, pero no se realiza ninguna comprobación en el modo de publicación.
Last()
const wxString& wxArrayString::Last() const
Devuelve el último elemento del array.
Si se intenta acceder al último elemento de una matriz vacía, se producirá un error de afirmación en la compilación de depuración, pero no se realiza ninguna comprobación en el modo de publicación.
Remove()
void wxArrayString::Remove(const wxString & sz)
Elimina el primer elemento que coincida con este valor.
Se provoca un fallo de aserción al intentar eliminar un elemento que no existe en la compilación de depuración.
RemoveAt()
void wxArrayString::RemoveAt( size_t nIndex, size_t count = 1 )
Elimina de la matriz los count elementos que comienzan en la posición nIndex.
Shrink()
void wxArrayString::Shrink()
Libera la memoria extra asignada por el array.
Esta función es útil para minimizar el consumo de memoria del array.
Sort()
void wxArrayString::Sort(bool reverseOrder = false)
Ordena el array en orden alfabético o en orden alfabético inverso si reverseOrder es true.
La ordenación distingue entre mayúsculas y minúsculas.
Sort()
void wxArrayString::Sort(CompareFunction compareFunction)
Ordena el array utilizando la función compareFunction especificada para la comparación de elementos.
CompareFunction se define como una función que toma dos parámetros const wxString& y devuelve un valor int menor, igual o mayor que 0 si la primera cadena es menor, igual o mayor que la segunda.
Ejemplo: El siguiente ejemplo ordena las cadenas por su longitud.
static int CompareStringLen(const wxString& first, const wxString& second) { return first.length() - second.length(); } ... wxArrayString array; array.Add("one"); array.Add("two"); array.Add("three"); array.Add("four"); array.Sort(CompareStringLen);
Operadores
operator!=()
bool wxArrayString::operator!=(const wxArrayString & array) const
Compara 2 arrays diferenciando mayúsculas y minúsculas.
Devuelve true si las matrices tienen distinto número de elementos o si los elementos no coinciden por pares.
operator=()
wxArrayString& wxArrayString::operator=(const wxArrayString & array)
Operador de asignación.
operator==()
bool wxArrayString::operator==(const wxArrayString & array) const
Compara 2 arrays diferenciando mayúsculas y minúsculas.
Devuelve verdadero solo si las matrices tienen el mismo número de elementos y las mismas cadenas en el mismo orden.
operator[]()
wxString& wxArrayString::operator[](size_t nIndex) const
Devuelve el elemento del array en la posición nIndex.
Si se intenta acceder a un elemento más allá del final del array en modo depuración, se producirá un fallo de assert, pero en modo liberación no se realiza ninguna comprobación.
Esta es la versión en operador del método Item().