Another useful STL algorithm is replace(), which is defined in the standard header <algorithm> and has the following prototype:
void replace (ForwardIterator start,
ForwardIterator end,
const T & old_value,
const T & new_value);
The first and the second arguments mark the sequence's beginning and end, respectively. replace() changes every occurrence of old_value in the sequence to new_value.
The following example uses replace() to replace every occurrence "NT" by "Win2000" in a vector of strings. You can apply replace() to built-in arrays, too. In the second example, replace() scans an array of integers and replaces every 1 by 5:
#include <algorithm>
#include <string>
#include <vector>
using namespace std;
main()
{
vector <string> vs;
// fill vector
vs.push_back ("Unix");
vs.push_back ("VMS");
vs.push_back ("NT");
// replace every occurrence of "NT" by "Win2000"
replace (vs.begin(), vs.end(), "NT", "Win2000");
// replace() can be applied to built-in arrays too
int n [] = {1, 0, 2, 1};
replace( n, n + 4, -1, 5); // replace every 1 by 5
}