Esta duda se puede tratar de diversas formas, pero te enseñamos la que para nosotros es la solución más completa.
Solución:
it
es un objeto iterador, pasarlo tal como está significaría que está tratando de pasar un objeto de tipo vector
para una función que espera tObj*
y por lo tanto el error.
Cuando tu lo hagas *it
obtendría el objeto subyacente que representa el iterador y cuando aplica &
encima de eso, obtienes que dirección del objeto, que es de tipo tObj*
que está de acuerdo con el tipo de argumento de la función y, por lo tanto, no hay error.
Para que el código sea compilado, debe declarar una función sobrecargada como
void funcToCall ( std::vector::iterator it, int moreData)
//Useful stuff here
En general tipos de casos tObj *
y vector
son tipos diferentes, aunque en algunas realizaciones antiguas de std::vector su iterador se define como un puntero.
Si te gustó nuestro trabajo, puedes dejar una reseña acerca de qué te ha gustado de esta sección.