Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: gatusko en 16 Septiembre 2010, 05:07 am



Título: Eliminar datos de un vector
Publicado por: gatusko en 16 Septiembre 2010, 05:07 am
Tengo un problema... como puedo eliminar los datos de un vector, sin utilizar erase y otras cosas de vectores...
Mi problema es que tengo que eliminar todo los datos pares de mi vector e hize algo asi...

Citar
void eliminar(int a,int b[])
{
    int aux=a,at;
    for(int i=0;i<a;i++)
{
    if(b%2==0)
    {
        for(int t=i;t<a;t++)
        {
            b=b[i+1];
        }
        aux=aux-1;
    }
}
cout<<"El vector comprimido:";
for (int n=0;n<aux;n++)
{
    cout<<" "<<b[n];
}
cout<<endl;
}
Tengo que comprimirlo? Eso dijo mi profesor que no me pudo responder como se hace esto ><


Título: Re: Eliminar datos de un vector
Publicado por: satu en 16 Septiembre 2010, 12:25 pm
Hola

Lo tienes casi resuelto, mira:

Código
  1. void eliminar(int &a, int &b[]) //suponemos que 'a' es la longitud del vector? Como se van a modificar los tienes que pasar por referencia
  2. {
  3.    int aux=a;
  4.    for(int i=0; i<aux; i++)
  5.      {
  6.      if(b[i]%2==0)
  7.        {
  8.        for(int t=i; t<aux; t++)
  9.          { // estas llaves no harian falta porque solo hay 1 instruccion dentro
  10.           b[t]=b[t+1]; // Aqui ya estas borrando y comprimiendo a la vez
  11.          }
  12.        aux=aux-1;
  13.         }
  14.       }
  15.    cout<<"El vector comprimido:";
  16.    for (int n=0; n<aux; n++)
  17.      {
  18.      cout<<" "<<b[n];
  19.      }
  20.    cout<<endl;
  21.    a=aux;
  22. }
  23.  

Bueno eso es todo, no lo he probado pero creo que deberia funcionar. Compara tu código con el mío que seguro que lo entiendes bien, si tienes alguna otra duda aquí estamos.

Saludos