您好我的问题是存在一个对象classA
,如下所示
typedef map myMap;
static string keys[3] = { "11" , "22" , "33" };
class classA {
myMap::const_iterator m_iterators[3];
int classA::SetIterators(const myMap &AllData)
}
int classA::SetIterators(const myMap &AllData)
{
m_iterators[0]=AllData.find(keys[0]);
....
return VALID;
}
在SetIterators
函数中的我想确保地图中是否存在某个键并将iterators
设置为它们
当我在SetIterators
内存在时,迭代器设置正确。
但回来后他们错过了他们的价值,并设置为Bad Ptr。
我打电话给SetIterators
,如下所示。
int classA::BuildView(const myMap &AllData)
{
if(SetIterators(AllData)== VALID)
}
这是怎么发生的?我怎么能阻止这个? 谢谢herzl。
答案 0 :(得分:-1)
在地图中添加或删除新值时,迭代器将失效。