在VC6中spa
list<T*> Tlist;rem
list<T*>::iterator iter;it
iter=Tlist.end(); table
再tab
iter++;di
此時iter的遊標位置和iter.begin()相等錯誤
但在VC6之後的版本中,好比VC2002,2005,2008中版本
list<T*> Tlist;iterator
list<T*>::iterator iter;ab
iter=Tlist.end();
再
iter++;
此時iter的遊標位置不是iter.begin(),而是一個空的位置
這時會報出 list iterator not incrementable 錯誤
解決辦法以下:
list<T*> Tlist;
list<T*>::iterator iter;
iter=Tlist.end();
if(iter==Tlist.end())
{
iter=Tlist.begin();
}
else
{
iter++;
}
這樣作就躲避掉了VC6之後版本由於end()++不等於begin()而致使的錯誤
在各類版本中均使用正常不報錯