STL Algorithms Modifying Sequence Operations C++ Tutorial

#include 
#include 
#include 
using namespace std;
template
void show_range(const char *msg, InIter start, InIter end);
int main()
{
  vector v;
  vector::iterator itr, itr_end;
  for(int i=0; i<5; i++) {
    v.push_back('A'+i);
  }
  for(int i=0; i<5; i++) {
    v.push_back('A'+i);
  }
  show_range("Original contents of v:", v.begin(), v.end());
  
  // Replace B's with X's
  replace(v.begin(), v.end(), 'B', 'X');
  show_range("v after replacing B with X:", v.begin(), itr_end);
  return 0;
}
template
void show_range(const char *msg, InIter start, InIter end) {
  InIter itr;
  cout << msg << endl;
  for(itr = start; itr != end; ++itr){
    cout << *itr << endl;
  }
}