首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

vecotr 迭代器使用错误

2012-05-07 
vecotr 迭代器使用异常将迭代器作为函数的引用参数,发现函数结束后,迭代器没有变化,而且还导致迭代器异常。

vecotr 迭代器使用异常
将迭代器作为函数的引用参数,发现函数结束后,迭代器没有变化,而且还导致迭代器异常。下面是我调用整个过程:

std::vector<CRepeatRect>::iterator repeatIter;
GetShortestHeightRect(vecRepeatRect,repeatIter);
if(repeatIter==vecRepeatRect.end())//这里直接导致程序崩溃
{
return FALSE;
}

//这里只是简单的修改下迭代器的值
GetShortestHeightRect(std::vector<CRepeatRect> vecRepeatRect,std::vector<CRepeatRect>::iterator& indexIter)
{
indexIter=vecRepeatRect.end();
return indexIter;
}

上面的代码只是让函数简单的修改下迭代器的值,可是调试的结果发现,函数结束后,迭代器的值根本没有改变过,而且接下来的if判断语句还让程序崩溃了。
另外在调试过程中,GetShortestHeightRect函数使用修改indexIter的值的。

[解决办法]

探讨

引用:
GetShortestHeightRect(std::vector<CRepeatRect>&amp;amp;vecRepeatRect,std::vector<CRepeatRect>::iterator&amp;amp; indexIter)
{
indexIter=vecRepeatRect.end();
return indexIter;
}

如……

热点排行