Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: chihue en 2 Enero 2015, 17:11 pm



Título: Eliminar elementos de un vector
Publicado por: chihue en 2 Enero 2015, 17:11 pm
Como se pueden eliminar todos los elementos guardados en un vecor. Tengo una función que lee todos los elementos y cada cambo quiero que vuelva a guardad a todos los elementos. Lo que he echo es inicializar siempre a 0 que empieza a leeer un fichero el problema es que si en el archivo hay 5 datpos que guardar en un vector pero el vector tenia guardado 6 datos hay uno que esta ai siempre.
Lo que quiero es saver como antes de leer un vector se vacie entero. he encontrado la funcion: "v.erase (v.begin(),v.begin()+tam);   " pero me sale un error.

Aqui mi codigo:
Código:
void FncLeerClientesFich(ifstream &f,VecClientes v, int &tam){
string id;
v.erase (v.begin(),v.begin()+tam);
tam=0;
while (!f.eof()){
getline (f,id);
v[tam].identificador = atoi(id.c_str());
getline (f,v[tam].c);
getline (f,v[tam].nombre);
getline (f,v[tam].direccion);
getline (f,v[tam].correo);
getline (f,v[tam].ciudad);
tam++;
}

}


Título: Re: Eliminar elementos de un vector
Publicado por: rir3760 en 3 Enero 2015, 03:13 am
Como se pueden eliminar todos los elementos guardados en un vecor
Mediante la función miembro clear (http://www.cplusplus.com/reference/vector/vector/clear/)

En cuanto a la función "FncLeerClientesFich" falta la definición de la clase "VecClientes" y deberías evitar el uso de la función feof, en su lugar verifica directamente el estado del stream.

Un saludo