remove_copy_if man page on SunOS

Man page or keyword search:  
man Server   20652 pages
apropos Keyword Search (all sections)
Output format
SunOS logo
[printable version]

remove_copy_if(3C++)		       -		  remove_copy_if(3C++)

Standard C++ Library Copyright 1998, Rogue Wave Software, Inc.

NAME
       remove_copy_if

	-  Moves  desired elements to the front of a container, and returns an
       iterator that describes where the sequence of desired elements ends.

SYNOPSIS
       #include <algorithm>
       template <class InputIterator,
	 class OutputIterator,
	 class Predicate>
OutputIterator remove_copy_if (InputIterator first,
			       InputIterator last,
			       OutputIterator result,
			       Predicate pred);

DESCRIPTION
       The remove_copy_if algorithm copies all the elements referred to by the
       iterator i in the range [first, last) for which the following condition
       does not hold: pred(*i)	== true. remove_copy_if	 returns  an  iterator
       that  points  to the end of the resulting range. remove_copy_if is sta‐
       ble, which means that the relative order of the elements in the result‐
       ing range is the same as their relative order in the original range.

COMPLEXITY
       Exactly	last1 - first1 applications of the corresponding predicate are
       done.

EXAMPLE
//
// remove.cpp
//
 #include <algorithm>
 #include <vector>
 #include <iterator>
 #include <iostream>
using namespace std;

template<;class Arg>
struct all_true : public unary_function<;Arg, bool>
 {
  bool operator() (const Arg&) { return 1; }
 };

int main ()
 {
  int arr[10] = {1,2,3,4,5,6,7,8,9,10};
  vector<int> v(arr+0, arr+10);

  copy(v.begin(),v.end(),
       ostream_iterator<int,char>(cout," "));
  cout << endl << endl;
   //
   // Remove the 7.
   //
  vector<int>::iterator result = remove(v.begin(),
				 v.end(), 7);
   //
   // Delete dangling elements from the vector.
   //
  v.erase(result, v.end());

  copy(v.begin(),v.end(),
       ostream_iterator<int,char>(cout," "));
  cout << endl << endl;
   //
   // Remove everything beyond the fourth element.
   //
  result = remove_if(v.begin()+4, v.begin()+8,
	   all_true<int>());
   //
   // Delete dangling elements.
   //
  v.erase(result, v.end());

  copy(v.begin(),v.end(),
       ostream_iterator<int,char>(cout," "));
  cout << endl << endl;
   //
   // Now remove all 3s on output.
   //
  remove_copy(v.begin(),    v.end(),	 <br>			ostream_itera‐
  tor<int>(cout," "), 3);
  cout << endl << endl;
   //
   // Now remove everything satisfying predicate on output.
   // Should yield a NULL vector.
   //
   remove_copy_if(v.begin(),   v.end(),	 <br>			ostream_itera‐
   tor<int,char>(cout," "),
		 all_true<int>());

  return 0;
 }

Program Output

1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 8 9 10
1 2 3 4
1 2 4

WARNINGS
       If your compiler does not support default template parameters, then you
       always  need  to	 supply the Allocator template argument. For instance,
       you need to write:

       vector<int, allocator<int> >

       instead of:

       vector<int>

       If your compiler does not support namespaces, then you do not need  the
       using declaration for std.

SEE ALSO
       remove, remove_if, remove_copy

Rogue Wave Software		  02 Apr 1998		  remove_copy_if(3C++)
[top]

List of man pages available for SunOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net