[C con Clase] [c con clase] eliminar elemento Vector

Programante programante en gmail.com
Lun Ago 27 15:53:11 CEST 2007


Roberto Vivancos Galiano escribió:
> Hola
>
> estoy tratando de hacer un ejercicio que pida por pantalla un numero que 
> pueda estar o no incluido en un vector, que guarda los primeros diez 
> numeros pares:
>
> este es la funcion eliminar... pero no borra nada...
>
> bool eliminar (vector<int> &v, int x){
>     vector<int>::iterator it;
>     for (it =v.begin();it=v.end(); it++){
>         if(*it == x){
>            
>            
>                 v.erase(it);
>             cout << "borrando" << endl;
>             return true;
>         }else {
>            
>             cout << "no borrado" << endl;
>             return false;
>             }
>    
>     }
> }
>
>   
El problema está en el if.
Coges el primer elemento, si es el que buscas, lo borras y sales 
(correcto si sólo puede estar una vez en el vector).
Pero si el que buscas no es el primer elemento, no lo borras y *sales 
también*. Con lo cual no miras los demás elementos del vector.
Mueve el return false fuera del bucle for, para que se ejecute cuando se 
hayan probado todos los elementos del vector.




Más información sobre la lista de distribución Cconclase