Autor
|
Tema: Eliminar Elementos repetidos en un array (Leído 7,692 veces)
|
maikelowen
Desconectado
Mensajes: 9
|
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
|
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
|
Usando vectores: #include <algorithm> template <typename T> void quitar_duplicados (std::vector<T>& vec) { std::sort(vec.begin(), vec.end()); vec.erase(std::unique(vec.begin(), vec.end()), vec.end()); }
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
|
Hola, esto tendría algo de ilegal? vector<string> rem_dup(vector<string> list) { //hacer algo para quitar entradas duplicadas return list; }
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
|
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
|
Disculpas, escribí el codigo asi nomas xD vector<string> rem_dup(vector<string> lista_palabras) { //hacer algo para quitar entradas duplicadas return lista_palabras; }
|
|
|
En línea
|
|
|
|
Orubatosu
|
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
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Eliminar elementos repetidos de un vector
Programación General
|
GaLaN GaLaNaSo 3000
|
2
|
63,393
|
16 Noviembre 2011, 06:44 am
por osolmm
|
|
|
Eliminar las posiciones pares de un array y comprimir el array
Java
|
sevedeboa
|
8
|
15,398
|
26 Enero 2015, 15:52 pm
por sevedeboa
|
|
|
Array elementos repetidos
Programación C/C++
|
LGG
|
1
|
2,958
|
5 Mayo 2015, 17:32 pm
por eferion
|
|
|
Eliminar elementos repetidos en un Array
.NET (C#, VB.NET, ASP)
|
okik
|
2
|
9,942
|
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
|
4 Febrero 2017, 23:53 pm
por lfgmespino
|
|