总结一下vector、list、set等常用容器的erase、remove操作的几个坑:
//vector************************************
vector<int> nums = {
1, 2, 2, 2, 2, 3, 5 };
for (vector<int>::iterator it = nums.begin(); it != nums.end();) {
if (*it == 2) {
//erase函数的返回值是指向当前被删除元素的下一个元素的迭代器,把这个返回值赋值给it继续遍历
it = nums.erase(it);
//nums.erase(it++);//error
}
else {
++it;
}
}
vector<char>vec;
vector<char>::iterator ite;
vector<char>::iterator p;
vec.push_back('A');
vec.