在VC6中
list<T*> Tlist;
list<T*>::iterator iter;
iter=Tlist.end();
再
iter++;
此时iter的游标位置和iter.begin()相等
但在VC6以后的版本中,比如VC2002,2005,2008中
list<T*> Tlist;
list<T*>::iterator iter;
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++;
}