elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con C++ y ordenar vector de strings
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con C++ y ordenar vector de strings  (Leído 5,839 veces)
rodrial12

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Ayuda con C++ y ordenar vector de strings
« en: 15 Septiembre 2014, 02:27 am »

Estimados como estan?
Necesito ayuda con la siguiente funcion
char **orderVecStrings(char **vecStr, int largoVecStr)
    {

}
lo que sucede es que no se como se debe de leer char **vecStr
largoVecStr es el largo de vecStr
A partir de un vector de strings vecStr de largo largoVecStr, retorna un nuevo vector ordenado que no comparte memoria con el vector original.

Ejemplo 1
Entrada
vecStr: hola, abholaz largoVecStr: 2
Retorno:
vector retornado: abholaz, hola
Ejemplo 2
Entrada
vecStr: jj, ababa, ab largoVecStr: 3
Retorno
vector retornado: ab, ababa, jj

Muchas gracias!!


En línea

eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Ayuda con C++ y ordenar vector de strings
« Respuesta #1 en: 15 Septiembre 2014, 08:35 am »

El código, si lo decoras con las etiquetas GeSHi, mejor. Además es un requisito en el foro :)

Si quieres currarte todo el código deberías montar un par de bucles para comparar las cadenas de dos en dos usando, por ejemplo, el algoritmo de burbuja. Para comparar las cadenas puedes usar la función strcmp. Si las cadenas no están en orden, simplemente las intercambias. Para eso puedes usar un string temporal y la función strcpy. Este código no te lo pongo porque no se hacen tareas. Puedes intentar hacerlo tu mismo y volver cuando tengas dudas sobre TU código.

Otra de las muchas formas de hacerlo, esta vez usando la clase string y las bondades de la stl:

Código
  1. std::vector< std::string > orderVecStrings(
  2.          std::vector< std::string > vecStr, int /*largoVecStr*/ )
  3. {
  4.  std::sort( vecStr.begin( ), vecStr.end( ), std::less< std::string >( ) );
  5.  return vecStr;
  6. }

También se pueden ordenar usando el contenedor 'set':

Código
  1. std::vector< std::string > orderVecStrings(
  2.          std::vector< std::string > vecStr, int /*largoVecStr*/ )
  3. {
  4.  std::set< std::string > temp{ vecStr.begin( ), vecStr.end( ) };
  5.  return std::vector< std::string >{ temp.begin( ), temp.end( ) };
  6. }

En cualquiera de los dos casos, ves que ya no se hace necesario el uso del segundo argumento de la función.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con ordenar un vector!
Programación C/C++
GregoryH 1 2,419 Último mensaje 27 Noviembre 2010, 21:49 pm
por Samnov
ordenar un vector
Programación C/C++
indict 5 4,097 Último mensaje 30 Junio 2013, 15:34 pm
por amchacon
Ordenar strings de analisis de fechas en lista doblemente enlazada.
Programación C/C++
falconez 1 2,436 Último mensaje 16 Junio 2014, 09:21 am
por eferion
[emu8086]Ayuda Ordenar Vector
ASM
Vanessa Delgado 0 3,745 Último mensaje 23 Octubre 2016, 05:18 am
por Vanessa Delgado
Copiar fichero a vector strings
Programación C/C++
ElFontaneroGRNA 5 3,753 Último mensaje 16 Enero 2017, 08:36 am
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines