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條經驗 獲得超8個贊
不能 如果你在括號里面定義 那定義的值沒有初始化,是使用不了的
while ( vector<int>::iterator iter != ivec.end() )
{
doSometing();
iter++;
}
iter 沒有初始化 所以iter != ivec.end() 這條件是錯的
- 2 回答
- 0 關注
- 225 瀏覽
添加回答
舉報
0/150
提交
取消