Necesito saber ¿como ordenar palabras alfabéticamente en una tabla con matrices?
Preferiblemente usar strings, revisas el largo del string, el largo del string -1 es el primer carácter del string, haces un bubble sort en base a eso reorganizas los elementos, así con el segundo carácter, 3ro, etc
Si las palabras no van a aparecer duplicadas y van a venir todas en minúsculas o mayúsculas puedes usar el contenedor set.
std::set< std::string > lista;
lista.insert( "zzz" );
lista.insert( "bbb" );
lista.insert( "tttt" );
lista.insert( "hola" );
lista.insert( "adios" );
for ( auto it = lista.begin( ); it != lista.end( ); ++it )
std::cout << *it << endl;
Salida del programa:
adios
bbb
hola
ttt
zzz
Si se admiten duplicados, puedes usar el contenedor multiset.
Si se han de ordenar independientemente de que empiecen por mayúsculas o minúsulas puedes usar la función sort:
#include <algorithm>
#include <iostream>
#include <string>
#include <vector>
int ordenar( const std::string& cad1, const std::string& cad2 )
{
int to_return = 0;
// Codigo para comparar las cadenas
return to_return;
}
int main( )
{
std::vector< std::string > lista;
lista.push_back( "abogado" );
lista.push_back( "Ahorcado" );
lista.push_back( "prueba" );
lista.push_back( "Finalista" );
lista.push_back( "ZaRPazo" );
lista.push_back( "C++" );
std::sort( lista.begin( ), lista.end( ), ordenar );
for ( auto it = lista.begin( ); it != lista.end( ); ++it )
std::cout << *it << std::endl;
}
@Eferion: Yo no llamaria a la variable "lista", si veo eso en un código pensaré que es un list y no un vector ;D
Cita de: amchacon en 5 Mayo 2014, 11:16 AM
@Eferion: Yo no llamaria a la variable "lista", si veo eso en un código pensaré que es un list y no un vector ;D
Cierto... se nota que list lo uso poco jejejeje