算法remove和remove_if与成员函数erase之间的区别是什么? 它们是否都会导致调用已删除的对象析构函数?
没有,remove并且remove_if只在序列中四处移动的物体.您需要调用erase来使序列实际上更短.remove和remove_if的返回值是您可以在erase调用中使用的迭代器,以缩短序列:
sequence.erase(remove(...),sequence.end());
Run Code Online (Sandbox Code Playgroud)