读书人

迭代器冲突请大家帮忙看看咋回事

发布时间: 2013-01-18 10:22:42 作者: rapoo

迭代器冲突,请大家帮忙看看怎么回事?


map<UINT32,templateItem>::iterator itDscp = mapDSCP.find(srcIP);//找到了这条记录
if( itDscp == mapDSCP.end())//end()执行完,在判断是否相等时报错,
{
return false;
}

跟进去到这个函数
void __CLR_OR_THIS_CALL _Orphan_me()
{// cut ties with parent
if (_Mycont != 0 && _Mycont->_Myfirstiter != _IGNORE_MYITERLIST)
{// adopted, remove self from list
_Iterator_base **_Pnext =
(_Iterator_base **)&_Mycont->_Myfirstiter;
while (*_Pnext != 0 && *_Pnext != this)
_Pnext = &(*_Pnext)->_Mynextiter;

if (*_Pnext == 0)
_DEBUG_ERROR("ITERATOR LIST CORRUPTED!");
*_Pnext = _Mynextiter;
_Mycont = 0;
}
}

很纳闷,之前都是正常的。 map??迭代器??C++ iterator 失效
[解决办法]
这句话没问题,可能是前面定义过相同变量名

读书人网 >C++

热点推荐