Título: Borrar números repetidos en vector Publicado por: aleaProg en 8 Mayo 2015, 06:19 am Hola chicos soy nuevo en esto de la programación, me dejaron un ejercicio pero la verdad no he dado como hacerlo, el ejercicio es utilizando un vector, hacer la función para llenarlo, imprimirlo, contarlo, borrar los números repetidos y volver a imprimir sin los duplicados, ya hice la función de llenado e imprimir, la de contar no se porque no me retorna el valor aunque si funciona, con la que definitivamente no he podido ha sido la de borrar los duplicados, aquí les dejo mi código para que porfa me ayuden gracias.
Código: #include <iostream> :-\ Título: Re: Borrar números repetidos en vector Publicado por: eferion en 8 Mayo 2015, 09:52 am Código
Esa línea está borrando SIEMPRE el segundo elemento del vector. Dado que supongo que tu idea es eliminar el elemento "x", tal vez deberías plantearte el cambiar ese "+1" por un "+x". Por otro lado: Código
Fíjate que se va a dar el caso que i==x, en tal circuntancia acabarías detectando, erróneamente, que tienes un elemento duplicado cuando no es así. "x" debería empezar en "i+1" para no comparar un elemento del vector consigo mismo. Además, cada vez que eliminas un elemento deberías retroceder el índice "x" una posición para no saltarte elementos (si borras v[ x ], el elemento que estaba en v[ x+1 ] pasa a estar en v[ x ]) PD.: un truco para cuando termines la práctica... el contenedor "set" tiene dos características importantes: sus elementos están ordenados y no admite duplicados. Estas propiedades las puedes aprovechar, en tu caso, de dos formas diferentes: 1. Aprovechando que no admite duplicados. Desventaja: los elementos del vector aparecerán descolocados) Código
2. Preguntando al set si el elemento existe... si existe es que está duplicado: Código
Un saludo Título: Re: Borrar números repetidos en vector Publicado por: aleaProg en 11 Mayo 2015, 02:43 am gracias por la ayuda... pero aun no he podido resolverlo >:D >:D cuando ejecuto el set me dice que no esta declarado, necesito alguna librería en especial??
Título: Re: Borrar números repetidos en vector Publicado por: aleaProg en 11 Mayo 2015, 03:39 am eferion muchísimas gracias pude hacer el código por tus consejos ;-) ;-) , así me quedo:
Código: void vecBorrar(vector<int>&vecNumeros) Título: Re: Borrar números repetidos en vector Publicado por: eferion en 11 Mayo 2015, 08:55 am Perdona, la respuesta que te puse no estaba bien redactada... hay que tener cuidado con los corchetes. En mi caso hay texto que desapareció.
Al igual que para usar la clase "vector" has de añadir "#include <vector>", para la clase "set" tienes que poner su include correspondiente :) Título: Re: Borrar números repetidos en vector Publicado por: Peregring-lk en 17 Mayo 2015, 00:46 am Si el órden de los elementos no importa, puedes utilizar un `set` auxiliar (no he probado el código):
Código
|