replace_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]

replace_copy_if(3C++)		       -		 replace_copy_if(3C++)

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

NAME
       replace_copy_if

	-  Substitutes elements in a collection with new values, and moves the
       revised sequence into result.

SYNOPSIS
#include <algorithm>
template <;class InputIterator,
	 class OutputIterator,
	 class Predicate,
	 class T>
OutputIterator replace_copy_if (InputIterator first,
			       InputIterator last,
			       OutputIterator result,
			       Predicate pred,
			       const T& new_value);

DESCRIPTION
       The replace_copy_if algorithm leaves the original sequence  intact  and
       places  a revised sequence into result. For the range [first,last), the
       algorithm compares each element *i with	the  conditions	 specified  by
       pred.   If pred(*i)==false, replace_copy_if copies *i to result+(first-
       i).  If	pred(*i)==true,	 then	replace_copy   copies	new_value   to
       result+(first-i). replace_copy_if_returns result+(last-first).

COMPLEXITY
       Exactly last - first applications of the predicate are performed.

EXAMPLE
//
// replace.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 ()
 {
   //
   // Initialize a vector with an array of integers.
   //
  int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
  vector<int> v(arr+0, arr+10);
   //
   // Print out original vector.
   //
  cout << "The original list: " << endl << "	 ";
  copy(v.begin(), v.end(),
       ostream_iterator<int,char>(cout," "));
  cout << endl << endl;
   //
   // Replace the number 7 with 11.
   //
  replace(v.begin(), v.end(), 7, 11);
   //
   // Print out vector with 7 replaced.
   //
  cout << "List after replace:" << endl << "	 ";
  copy(v.begin(), v.end(),
       ostream_iterator<int,char>(cout," "));
  cout << endl << endl;
   //
   // Replace 1 2 3 with 13 13 13.
   //
  replace_if(v.begin(), v.begin()+3, all_true<int>(), 13);
   //
   // Print out the remaining vector.
   //
  cout << "List after replace_if:" << endl << "	    ";
  copy(v.begin(), v.end(),
       ostream_iterator<int,char>(cout," "));
  cout << endl << endl;
   //
   // Replace those 13s with 17s on output.
   //
  cout << "List using replace_copy to cout:" << endl
	<< "	 ";
  replace_copy(v.begin(), v.end(),
	       ostream_iterator<int,char>(cout, " "),
	       13, 17);
  cout << endl << endl;
   //
   // A simple example of replace_copy_if.
   //
  cout << "List w/ all elements output as 19s:" << endl
       << "   ";
   replace_copy_if(v.begin(),  v.end(),	 <br>			ostream_itera‐
   tor<int,char>(cout, " "),
		  all_true<int>(), 19);
  cout << endl;

  return 0;
 }

Program Output

The original list:
    1 2 3 4 5 6 7 8 9 10
List after replace:
    1 2 3 4 5 6 11 8 9 10
List after replace_if:
    13 13 13 4 5 6 11 8 9 10
List using replace_copy to cout:
    17 17 17 4 5 6 11 8 9 10
List with all elements output as 19s:
    19 19 19 19 19 19 19 19 19 19

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
       replace, replace_if, replace_copy

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