J'ai un ancien projet qui a été construit en utilisant Visual Studio 2003 et je l'ai récemment recompilé avec vs2005. Cependant, lors de l'exécution, je reçois l'erreur suivante:list itérateur non incrémentable
liste iterator pas Incrementable
Je traçais le programme à cette fonction:
void InputQueue::update()
{
list<PCB>::iterator iter;
list<PCB>::iterator iterTemp;
for(iter = begin(); iter != end(); iter++)
{
if(iter->arrivalTime == 0)
{
ReadyQueue::getInstance()->add(*iter);
iterTemp = iter;
iter++;
erase(iterTemp);
}
}
}
Je ne suis pas un expert en C++ et c'est aussi loin comme le débogueur VS m'a eu. Quelqu'un pourrait-il m'expliquer quel est le problème?
Merci
Il semble de http://www.sgi.com/tech/stl/Iterators.html que les itérateurs vers l'avant sont assignables. Les itérateurs de std :: list sont des itérateurs bidirectionnels (http://www.sgi.com/tech/stl/List.html, http://www.sgi.com/tech/stl/ReversibleContainer.html), et sont donc aussi forward itérateurs. :-) –
Hmm, c'est ce qu'ils entendent par "multi-pass"? Car sinon rien n'est dit sur l'assignabilité * de l'itérateur * (par opposition à sa valeur!). –