Vecteur Des Itérateurs Incompatible

J'ai une classe avec un std::vector membre de données par exemple

class foo{
public:

const std::vector<int> getVec(){return myVec;} //other stuff omitted

private:
std::vector<int> myVec;

};

Maintenant à une partie de mon code principal, je suis en train de parcourir le vecteur comme ceci:

std::vector<int>::const_iterator i = myFoo.getVec().begin();
while( i != myFoo.getVec().end())
{
   //do stuff
   ++i;
}

Le moment je atteindre cette boucle, j'obtiens l'erreur susmentionnée.

  • Vous êtes de retour une copie du vecteur, probablement, vous voulez retourner un const std::vector<int>&
  • Avez-vous vraiment envie de retourner une copie de votre vecteur?
  • Veuillez ne pas retourner const valeurs des fonctions, car il inhibe C++11 sémantique de déplacement.
  • l'erreur est-ci dans le titre je présume.
  • Je n'ai jamais vu une erreur qui lit simplement, sur son propre, "Vecteur Itérateurs Incompatible"
  • C'est un VC++ runtime affirmation message.
  • Rien d'autre à tous est de sortie?
  • Non pas que je me souviens (autres que l'habituel affirmation stacktrace info), mais ensuite je ne vois pas cette affirmation très souvent moi-même. ;-]

InformationsquelleAutor IG83 | 2011-12-07