Tengo un proyecto antiguo que se construyó usando Visual Studio 2003 y lo recompbé con vs2005 recientemente. Sin embargo, durante el tiempo de ejecución, me sale el siguiente error:iterador de lista no aumentable
iterador de la lista no incrementable
tracé el programa para esta función:
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);
}
}
}
No soy un experto en C++ y esto es lo más lejos como el depurador VS me consiguió. ¿Alguien podría explicarme cuál es el problema?
Gracias
Parece de http://www.sgi.com/tech/stl/Iterators.html que los iteradores de ida son asignables. Los iteradores de std :: list son iteradores bidireccionales (http://www.sgi.com/tech/stl/List.html, http://www.sgi.com/tech/stl/ReversibleContainer.html), y por lo tanto también iteradores hacia adelante :-) –
Hmm, ¿esto es lo que quieren decir con "multi-pass"? Porque, de lo contrario, no se dice nada sobre la asignabilidad * del iterador * (¡a diferencia de su valor!). –