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:
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;
}