It is an STL function in c++ which is defined in algorithm library. It copies the elements in the range [first, last) to the range beginning at result, except those elements that compare equal to given elements.
- The resulting range is shorter than [first,last) by as many elements as matches in the sequence, which are “removed”.
- The relative order of the elements not removed is preserved.
- The function uses operator == to compare the individual elements to given value.
ResultIterator remove_copy(ForwardIterator first, ForwardIterator last, ResultIterator result ,const T& ele); first, last : Forward iterators to the initial and final positions in a sequence. The range used is [first, last), which contains all the elements between first and last, including the element pointed by first but not the element pointed by last. result : Output iterator to the initial position of the range where the resulting sequence is stored. The pointed type shall support being assigned the value of an element in the range [first, last). ele : element to be removed.
Input : b d a f g h a k given element is a Output :b d f g h k _ _ Input : b k c s n m c l given element is c Output : b k s n m l _ _ '_' represent remove places
elements of v1 before remove_copy: 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 After removing element 3 4 5 0 1 2 4 5 0 1 2 4 5 0 1 0 1
Complexity: Linear O(n)
It is a STL function in c++ which is defined in algorithm library. It copies the elements in the range [first, last) to the range beginning at result, except those elements that meets to a given condition (like odd number, even number, prime number, non-prime number etc ).
- Copies the elements in the range [first, last) to the range beginning at result, except those elements for which condition function returns true.
- The resulting range is shorter than [first, last) by as many elements as matches, which are “removed”.
ResultIterator remove_copy_if(ForwardIterator first, ForwardIterator last, ResultIterator result, UnaryPredicate pred); pred : Unary function that accepts an element in the range as argument, and returns a value convertible to bool. The value returned indicates whether the element is to be removed (if true, it is removed).
Input : 1 2 3 4 5 6 7 8 9 check if a number is prime and remove Output :1 4 6 8 9 0 0 0 0 Input :1 2 3 4 5 6 7 8 9 check if a number is even and remove Output :1 3 5 7 9 0 0 0 0
elements of v1 before remove_copy: 10 11 12 13 14 15 16 17 18 19 20 elements of v1 after remove_copy: 10 11 12 13 14 15 16 17 18 19 20 After removing Odd Numbers from v1 copy result in vector v2 10 12 14 16 18 20 0 0 0 0
Complexity: Linear O(n)
Rated as one of the most sought after skills in the industry, own the basics of coding with our C++ STL Course and master the very concepts by intense problem-solving.
- Iterate over characters of a string in C++
- Difference between int (*p) and int* p?
- 3-way comparison operator (Space Ship Operator) in C++ 20
- How to generate a vector with random values in C++?
- Difference between std::set vs std::vector in C++ STL
- Vector of Maps in C++ with Examples
- Data Conversion in C++
- Length of smallest meeting that can be attended
- Order of execution in initializer list in C++
- Unusual behaviour with character pointers
- Header Guard in C++
- Can we write a print statement within if parentheses?
- Joining Tables using MultiMaps
- If memory allocation using new is failed in C++ then how it should be handled?
- Draw an ellipse divided by straight line into two colored part in C++ Graphics
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.