删除vector中小于20的元素,注意要使迭代器失效,不能简单的删除。
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector <int> arr;
arr.push_back(1);
arr.push_back(27);
arr.push_back(22);
arr.push_back(21);
arr.push_back(6);
for (vector<int>::iterator it = arr.begin(); it != arr.end();) {
if (*it < 20) {
it = arr.erase(it);
}
else {
++it;
}
}
for (int i = 0; i < arr.size(); ++i) {
cout << arr[i]<<" ";
}
}