remove
Eliminates a specified value from a given range without disturbing the order of the remaining elements and returning the end of a new range free of the specified value.
template<class ForwardIterator, class Type> ForwardIterator remove( ForwardIterator _First, ForwardIterator _Last, const Type& _Val );
注,The list class has a more efficient member function version of remove, which also relinks pointers. remove并不真正从容器中删除那些元素(也就说,容器大小并没有改变),而是将每一个不等于value的元素依次赋值给first之后的空间。返回值ForwardIterator 标示出重新整理后的最后一个元素的下一个位置。如果要删除那些残余的数据,可以讲返回的迭代器交给区间所在容器的erase成员函数。
remove_copy
Copies elements from a source range to a destination range, except that elements of a specified value are not copied, without disturbing the order of the remaining elements and returning the end of a new destination range.
template<class InputIterator, class OutputIterator, class Type> OutputIterator remove_copy( InputIterator _First, InputIterator _Last, OutputIterator _Result, const Type& _Val );
remove_copy_if
Copies elements from a source range to a destination range, except that satisfying a predicate are not copied, without disturbing the order of the remaining elements and returning the end of a new destination range.
template<class InputIterator, class OutputIterator, class Predicate> OutputIterator remove_copy_if( InputIterator _First, InputIterator _Last, OutputIterator _Result, Predicate _Pred );
remove_if
Eliminates elements that satisfy a predicate from a given range without disturbing the order of the remaining elements and returning the end of a new range free of the specified value.
template<class ForwardIterator, class Predicate> ForwardIterator remove_if( ForwardIterator _First, ForwardIterator _Last, Predicate _Pred );