J'ai deux classes, la première qui contient un vecteur et un get méthode comme ceci:vecteur de retour de la fonction
std::vector<mytype> const& MyClassA::getvector(std::vector<mytype>::iterator &it)
{
it = this->myiterator;
return this->myvector;
}
std::vector<mytype> myvector;
std::vector<mytype>::iterator myiterator;
et j'ai une autre classe où je devrais utiliser le vecteur:
MyClassB::myfunction()
{
std::vector<mytype>::iterator it;
std::vector<mytype> vector = MyClassA->getvector(it);
if (it > vector.begin())
{
....
(--it)->dosomestuff();
....
}
}
Si j'ai une exception d'exécution: les itérateurs sont incompatibles.
Pourquoi?
EDIT 1
void MyClassA::setvector(mytype myelement)
{
this->myvector.push_back(myelement);
this->myiterator = this->myvector.end() - 1;
}
Où initialisez vous myiterator? –
@Rocky a ajouté une fonction supplémentaire à la réponse – Stefano