The following algorithms remove elements from a range according to their value or to a criterion. These algorithms, however, cannot change the number of elements. The algorithms move logically only by overwriting “removed” elements with the following elements that were not removed. They return the new logical end of the range (the position after the last element not removed). See Section 6.7.1, page 218, for details.
ForwardIteratorremove (ForwardIterator beg, ForwardIterator end, const T& value)ForwardIteratorremove_if (ForwardIterator beg, ForwardIterator end, UnaryPredicate op)
remove() removes each element ...