请教这个函数,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,当然退不出来