C++ std::remove_copy_if with std::vectors














































C++ std::remove_copy_if with std::vectors



Description:
This C++ article is about the remove_copy_if () algorithm function with std::vector container.
It is an STL algorithm in <algorithm> header file.It c
opies the elements in the range [first,last) to the range beginning at result, except those elements for which predicate returns true

remove_copy_if() has one definition:
template <class InputIterator, class OutputIterator, class UnaryPredicate>
OutputIterator remove_copy_if (InputIterator first, InputIterator last,
OutputIterator result, UnaryPredicate predicate);

Return type : An iterator pointing to the end of the copied range, which includes all the elements in [first,last)
                      except those for which predicate returns true.

Working: The remove_copy_if ( ) function takes 4 parameters, two iterators 'first' & 'last' , result , and predicate.
               Forward iterators to the range from first to last, which contains all the elements between first and last.       
              Output iterator to initial position of the range where the resulting sequence is stored. and predicate 
              ( Unary ) function that accepts an element in the range as argument, and returns a value convertible to bool.

Implementation: 

#include <iostream>            // std::cout
#include <algorithm> // std::remove_copy_if
#include <vector> // std::vector

bool predicate(int n) {
return !(n % 2 == 0);
}

int main () {
std::vector<int> element = {1,2,3,4,5,6,7,8,9,10};
std::vector<int> element_size (element.size());
   // copy only even no.

auto it = std::remove_copy_if (element.begin(), element.end(), element_size.begin(), predicate);
element_size.resize(
std::distance(element_size.begin(),it));
std::cout << "element contains:";
for (int& x: element_size) std::cout << ' ' << x;
std::cout << '\n';

return 0;
}


Output:
element contains: 2 4 6 8 10

More Articles of Mandeep Sheoran:

Name Views Likes
C++ program to insert an element into binary tree 6240 19
C++ program to find an element into binary tree 772 16
C++ std::is_void 572 15
C++ program to find the closest element in binary search tree 916 19
C++ program to replace every element with the least greater element on its right 573 12
C++ program to delete an element into binary tree 785 24
C++ program to find maximum element between two nodes of binary search tree 700 20
C++ std::remove_copy_if with std::vectors 548 11
C++ program to print duplicate elements from the binary search tree 2937 15
C++ program to find depth of the deepest odd level node in binary tree 575 23
C++ program to remove duplicate elements from the binary search tree 1555 20
C++ std::rotate_copy with std::vector 530 14
C++ std::copy_n with std::vector 638 22
C++ std::copy_if with std::vector 1552 18
C++ program to print all the elements of binary search tree 7106 22
C++ std::reverse_copy with std::list 598 18
C++ program to print all the elements of binary tree 1158 18
C++ program to print all full nodes in a binary tree 572 25
C++ program to find sink odd nodes in binary tree 580 15
C++ std::is_copy_assignable 596 22
C++ program to check whether a binary tree is a full binary tree or not using recursion 609 19
C++ std::is_copy_constructible 618 27
C++ program to delete an element into binary search tree 2873 18
C++ std::reverse_copy with std::vector 487 18
C++ std::rotate with std::vector 641 15
C++ program to check for symmetric binary tree using recursion 599 25
C++ program to maximum sum from a tree with adjacent levels not allowed 552 15
C++ std::copy_n with std::list 595 21
C++ program to check if two trees are identical using recursion 546 15
C++ std::copy_n 874 21
C++ std::copy_if with std::list 998 19
C++ program to print the nodes at odd levels of a tree 562 13
C++ program to find lowest common ancestor in a binary tree 689 29
C++ program to find depth of the deepest odd level leaf node 494 13
C++ std::remove_copy_if with std::list 666 20
C++ program to add all greater values to every node in a given binary search tree 638 15

Comments