Problema c++ iteradores

Iniciado por Snowden, 18 Febrero 2017, 01:07 AM

0 Miembros y 1 Visitante están viendo este tema.

Snowden

Hola buenas,

Llevo bastante tiempo intentando resolver un error de compilacion pero me es imposible.

Trozo de codigo:

Código (cpp) [Seleccionar]
typedef vector<Cumpleanos>  T;
typedef vector<int>::iterator I;

string borrar(T &vec){
   string nom;
   cout<<"Introduce nombre: ";
   cin>>nom;
   for(I it=vec.begin();it!=vec.end();it++){
       if(vec[*it].buscar(nom)==true){{
               vec.erase(it);
               return "Borrado con exito";
           }
   }
  }
       return "Ese usuario no existe";
}

Error:
note:   deduced conflicting types for parameter '_Container' ('std::vector<int>' and 'std::vector<Cumpleanos>')
    for(I it=vec.begin();it!=vec.end();it++){...

La flechita me pone el problema al final del vector.end()

Agradeceria mucho la ayuda porque me estoy volviendo loco
Cualquier cosa como el codigo completo o lo que sea no dudeis en pedirmelo muchas gracias



                                     ^


· Los códigos deben ir en etiquetas GeSHi
>aquí las reglas del foro
-Engel Lex

ivancea96

T es del tipo vector<Cumpleanos>, mientras que I es un ieterator de vector<int>. No son lo mismo. Uno es vector de int y el otro de CUmpleanos. Tendrás que poner en el tipo del iterator, <Cumpleanos>.