读书人

请问这个函数while版本为什么不能正

发布时间: 2012-02-21 16:26:23 作者: rapoo

请教这个函数,while版本为什么不能正确的执行
void initList(list <string> &slist, const vector <string> &svec)
{
vector <string> ::const_iterator cit = svec.begin();

// while(cit != svec.end())
// {
// slist.push_front(*cit);
// }

cit = svec.begin();
for (; cit != svec.end(); ++cit)
{
slist.push_back(*cit);
}
}
程序一直处于的处理状态,而for版本可以正确的执行,跟踪发现cit != svec.end()可能存在问题,但实在不理解
高手多多指教

[解决办法]
你在for循环中有++cit,
而在while中没有改变cit,当然退不出来

读书人网 >C++

热点推荐