The Standard Library defines the std::remove() algorithm, which moves desired elements to the front of a container and returns an iterator pointing to the end of the sequence of the desired elements. The elements to be removed are positioned past the sequence’s end. remove() is declared in the header
template ForwardIterator remove (ForwardIterator first, ForwardIterator last, const T& value);
remove() removes all the elements in the range (first, last) that are equal to ‘value’. It returns an iterator that points to the end of the resulting range. However, remove() doesn’t actually reduce the size of the sequence nor does it erase the removed elements. Instead, it copies the values that are to be retained to the beginning of the sequence, while pushing the