<分区>
Form 1 :
int main()
{
std::vector<int> array{1, 2, 3, 4, 5};
for(auto i = array.begin(); i != array.end();) {
if(*i == 2 || *i == 5) {
i = array.erase(i);
} else {
i++;
}
}
}
Form 2 :
int main()
{
std::vector<int> array{1, 2, 3, 4, 5};
for(auto i = array.begin(); i != array.end(); i++) {
if(*i == 2 || *i == 5) {
i-- = array.erase(i);
}
}
}
这两种形式相同吗?我可以使用一个或另一个来解决问题吗? (即与各种对象,例如链表?)。