remove_copy 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(3C++)		       -		     remove_copy(3C++)

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

NAME
       remove_copy

	-  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 T>
OutputIterator remove_copy (InputIterator first,
			    InputIterator last,
			    OutputIterator result,
			    const T& value);

DESCRIPTION
       The remove_copy algorithm copies all the elements referred  to  by  the
       iterator	 i  in	the range [first, last) for which the following corre‐
       sponding condition does not hold:   *i  == value.  remove_copy  returns
       an  iterator that points to the end of the resulting range. remove_copy
       is stable, which means that the relative order of the elements  in  the
       resulting  range	 is  the  same as their relative order in the original
       range. The elements  in	the  original  sequence	 are  not  altered  by
       remove_copy.

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,char>(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,  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_if

Rogue Wave Software		  02 Apr 1998		     remove_copy(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