vector通过迭代器,使用eraser()删除元素后,该元素后面的vector部分会一次往前移动。
1,创建一个vector,放入元素,并通过迭代器打印
std::vector<int> test_list;
for(int i=0; i<5; i++) {
test_list.push_back(i);
}
for(std::vector<int>::iterator l=test_list.begin();
l!=test_list.end();++l) {
std::cout << *l << " ";
}
std::cout << std::endl;
2.1,eraser删除元素
for(std::vector<int>::iterator l=test_list.begin();
l!=test_list.end();) {
if(*l == 2 || *l == 3) {
test_list.erase(l);
// continue;
}
++l;
}
for(std::vector<int>::iterator l=test_list.begin();
l!=test_list.end();++l) {
std::cout << *l << " ";
}
std::cout << std::endl;
2.2,eraser删除元素
for(std::vector<int>::iterator l=test_list.begin();
l!=test_list.end();) {
if(*l == 2 || *l == 3) {
test_list.erase(l);
continue;
}
++l;
}
for(std::vector<int>::iterator l=test_list.begin();
l!=test_list.end();++l) {
std::cout << *l << " ";
}
std::cout << std::endl;