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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Eliminar Elementos repetidos en un array
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Eliminar Elementos repetidos en un array  (Leído 7,692 veces)
maikelowen

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Eliminar Elementos repetidos en un array
« en: 7 Enero 2015, 19:27 pm »

Se me plantea la siguiente duda. Como mediante una función a la que le paso un array de tipo string con una serie de nombre, me devuelva otro array pero con los nombres sin repetir. La función no quiero que sea de tipo void.



Un saludo y gracias ;)


En línea

Orubatosu


Desconectado Desconectado

Mensajes: 2.515


Ver Perfil WWW
Re: Eliminar Elementos repetidos en un array
« Respuesta #1 en: 7 Enero 2015, 20:40 pm »

Que yo sepa, C++ no te permite devolver en una función un array entero, pero te permite por ejemplo devolver un vector, o una lista, lo cual te viene a servir igual.

Lo que puede devolver es un puntero a un array

Pero lo mismo me equivoco


En línea

"When People called me freak, i close my eyes and laughed, because they are blinded to happiness"
Hideto Matsumoto 1964-1998
MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.518


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Eliminar Elementos repetidos en un array
« Respuesta #2 en: 7 Enero 2015, 20:45 pm »

Usando vectores:

Código
  1. #include <algorithm>
  2.  
  3. template <typename T>
  4. void quitar_duplicados (std::vector<T>& vec)
  5. {
  6.  std::sort(vec.begin(), vec.end());
  7.  vec.erase(std::unique(vec.begin(), vec.end()), vec.end());
  8. }
  9.  

La función retorna void, pero el vector que le pasas queda modificado.

Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

_Enko


Desconectado Desconectado

Mensajes: 538



Ver Perfil WWW
Re: Eliminar Elementos repetidos en un array
« Respuesta #3 en: 7 Enero 2015, 21:06 pm »

Hola, esto tendría algo de ilegal?

Código
  1. vector<string> rem_dup(vector<string> list)
  2. {
  3.    //hacer algo para quitar entradas duplicadas
  4.    return  list;
  5. }
  6.  

La unica desventaja que veo con pasando por referencia es que se va a crear una nueva copia de la lista. Si la original no es necesario mantenerla, tendría mas sentido el pasaje por referencia.
Saludos.
« Última modificación: 7 Enero 2015, 21:21 pm por _Enko » En línea

Orubatosu


Desconectado Desconectado

Mensajes: 2.515


Ver Perfil WWW
Re: Eliminar Elementos repetidos en un array
« Respuesta #4 en: 7 Enero 2015, 21:30 pm »

list es una palabra reservada, es un contenedor de la STL.

Si lo que quieres es eliminar duplicados, lo mas rápido es un map (otro contenedor de la STL)
En línea

"When People called me freak, i close my eyes and laughed, because they are blinded to happiness"
Hideto Matsumoto 1964-1998
_Enko


Desconectado Desconectado

Mensajes: 538



Ver Perfil WWW
Re: Eliminar Elementos repetidos en un array
« Respuesta #5 en: 7 Enero 2015, 21:33 pm »

Disculpas, escribí el codigo asi nomas xD
Código:
vector<string> rem_dup(vector<string> lista_palabras)
{
    //hacer algo para quitar entradas duplicadas
    return  lista_palabras;
}
En línea

Orubatosu


Desconectado Desconectado

Mensajes: 2.515


Ver Perfil WWW
Re: Eliminar Elementos repetidos en un array
« Respuesta #6 en: 8 Enero 2015, 10:21 am »

Perfectamente... claro que puedes.

Con todo, si lo que quieres es eliminar repetidos, echa un vistazo a map

http://www.cplusplus.com/reference/map/map/

Para búsquedas rápidas y para eliminar duplicados es tremendamente eficiente, de hecho ni siquiera tienes que "comprobar duplicados", simplemente vas metiendo datos, y los duplicados se eliminan solos
En línea

"When People called me freak, i close my eyes and laughed, because they are blinded to happiness"
Hideto Matsumoto 1964-1998
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Eliminar elementos repetidos de un vector
Programación General
GaLaN GaLaNaSo 3000 2 63,393 Último mensaje 16 Noviembre 2011, 06:44 am
por osolmm
Eliminar las posiciones pares de un array y comprimir el array
Java
sevedeboa 8 15,398 Último mensaje 26 Enero 2015, 15:52 pm
por sevedeboa
Array elementos repetidos
Programación C/C++
LGG 1 2,958 Último mensaje 5 Mayo 2015, 17:32 pm
por eferion
Eliminar elementos repetidos en un Array
.NET (C#, VB.NET, ASP)
okik 2 9,942 Último mensaje 23 Junio 2015, 03:16 am
por Eleкtro
Eliminar elementos basura de un array en C
Programación C/C++
RuloVerde 3 6,312 Último mensaje 4 Febrero 2017, 23:53 pm
por lfgmespino
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines