Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Snowden en 18 Febrero 2017, 01:07 am



Título: Problema c++ iteradores
Publicado por: Snowden en 18 Febrero 2017, 01:07 am
Hola buenas,

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

Trozo de codigo:

Código
  1. typedef vector<Cumpleanos>  T;
  2. typedef vector<int>::iterator I;
  3.  
  4. string borrar(T &vec){
  5.    string nom;
  6.    cout<<"Introduce nombre: ";
  7.    cin>>nom;
  8.    for(I it=vec.begin();it!=vec.end();it++){
  9.        if(vec[*it].buscar(nom)==true){{
  10.                vec.erase(it);
  11.                return "Borrado con exito";
  12.            }
  13.    }
  14.   }
  15.        return "Ese usuario no existe";
  16. }
  17.  
  18. Error:
  19. note:   deduced conflicting types for parameter '_Container' ('std::vector<int>' and 'std::vector<Cumpleanos>')
  20.     for(I it=vec.begin();it!=vec.end();it++){...
  21.  
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 (http://foro.elhacker.net/reglas.htm)
-Engel Lex


Título: Re: Problema c++ iteradores
Publicado por: ivancea96 en 18 Febrero 2017, 01:32 am
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>.