while ( vector<int>::iterator iter != ivec.end() )// ...这是不正确的。因为在while 循环之中,表达式部分不能含有declaration,而且iter 也未被初始化。修正如下:vector<int>::iterator iter = ivec.begin();while (iter != ivec.end()) {//...++iter;}不能写成这样吗:while ( vector<int>::iterator iter != ivec.end() ){doSometing();iter++;}
2 回答
回首忆惘然
TA贡献1847条经验 获得超11个赞
你这样做是错误的,因为iter没进行初始化,是随机值,就直接判断不等于ivec.end() ,是没有意义的。
即使在while()内进行了初始化,也不行。因为这样每次进行while判断时,都会先进行初始化,所以iter++就不能实现自增了。
慕仙森
TA贡献1827条经验 获得超7个赞
不能 如果你在括号里面定义 那定义的值没有初始化,是使用不了的
while ( vector<int>::iterator iter != ivec.end() )
{
doSometing();
iter++;
}
iter 没有初始化 所以iter != ivec.end() 这条件是错的
- 2 回答
- 0 关注
- 151 浏览
添加回答
举报
0/150
提交
取消