为了账号安全,请及时绑定邮箱和手机立即绑定

比如下面c++primer有一道习题,该怎么修改呢?

比如下面c++primer有一道习题,该怎么修改呢?

C++
偶然的你 2022-05-30 11:11:55
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++就不能实现自增了。

查看完整回答
反对 回复 2022-06-06
?
慕仙森

TA贡献1827条经验 获得超7个赞

不能 如果你在括号里面定义 那定义的值没有初始化,是使用不了的
while ( vector<int>::iterator iter != ivec.end() )
{
doSometing();
iter++;
}
iter 没有初始化 所以iter != ivec.end() 这条件是错的

查看完整回答
反对 回复 2022-06-06
  • 2 回答
  • 0 关注
  • 151 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信