問題是關於循環內部的變量。它是如何工作的? 類似的問題:
one
twofor循環中的C++聲明變量
代碼:
for (i = 0 ; i < 3 ; i++) {
vector<int> vint;
vint.push_back(i);
cout << "vecor size is: " << vint.size() << endl;
for (j = 0 ; j < vint.size() ; j++) {
cout << "vint[" << j << "] = " << vint[j] << endl;
}
}
上面的代碼中給出了一個輸出:
vecor size is: 1
vint[0] = 0
vecor size is: 1
vint[0] = 1
vecor size is: 1
vint[0] = 2
它看起來像在每次迭代方法SDT結束:: vector :: erase被調用,或者某種方式vint變成空的。它是如何工作的,你是如何解決它的?謝謝!
UPDATE:
如果我想在每次迭代中什麼是更好的不同載體:
聲明VINT在循環
或在循環之前聲明,並在循環的末尾使用明確的()?
的確如此。但這不是一個非常有用的解釋。 – 2012-01-02 20:25:40