std::remove
The std::remove function is used to relocate the elements which equate to the given value and return the iterator to the new logical end.
Syntax of std::remove
container.remove(first, last, val);
Here,
- first: It is the iterator to the first element of the range the function has to work.
- last: It is the iterator to the last element of the range.
- val: It is the value to be tested against.
Erase-Remove Idiom in C++
Erase-Remove-Idiom is a C++ STL (Standard Template Library) technique to remove elements from a container. It is used to remove all the elements satisfying certain conditions from the container.
The erase-remove idiom is especially useful in array-based containers like vectors, where each elimination requires all the remaining elements to adjust. In the worst case, this may lead to O ( n2 ) time complexity. This technique avoids this by providing the elimination of the elements in a single parse. That is why, the erase-remove idiom provides O( n ) time complexity.
In this technique, we use the combination of two member functions of the container to remove the elements efficiently.
- std::erase
- std::remove or std::remove_if
It is due to the use of this function that this technique is called the erase-remove idiom.