// replace algorithm example
#include <iostream>
#include <cassert>
#include <vector>
using namespace std;

template<class FwdIt, class Ty>
void replace(FwdIt first, FwdIt last, const Ty& oldval, const Ty& newval) {
	for (; first != last; ++first)
		if (*first == oldval)
			*first = newval;
}

int main () {
  int myints[] = { 10, 20, 30, 30, 20, 10, 10, 20 };
  vector<int> myvector (myints, myints+8);            // 10 20 30 30 20 10 10 20

  replace (myvector.begin(), myvector.end(), 20, 99); // 10 99 30 30 99 10 10 99

  assert(myvector[1] == 99);
  assert(myvector[7] == 99);
  cout << "myvector contains:";
  for (vector<int>::iterator it=myvector.begin(); it!=myvector.end(); ++it)
    cout << " " << *it;

  cout << endl;
 
  return 0;
}
