|
#include <iostream> #include <vector>
using namespace std;
int main() { vector<int> arr; arr.push_back(6); arr.push_back(7); arr.push_back(8); arr.push_back(9);
for(vector<int>::iterator it=arr.begin(); it!=arr.end(); ) { if(* it == 8) { it = arr.erase(it); } else { ++it; } }
//注意上面不能写成
/* for(vector<int>::iterator it=arr.begin(); it!=arr.end(); it ++) { if(* it == 8) { arr.erase(it); //在erase后,it失效,并不是指向vector的下一个元素,it成了一个“野指针”。
} } */
cout << "After remove 8:\n";
for(vector<int>::iterator it = arr.begin(); it < arr.end(); ++it) { cout << * it << " "; } cout << endl << arr.size(); cout << endl;
}
|