Algorithm C++

#include 
#include 
#include 
using namespace std;
template
void show_range(const char *msg, InIter start, InIter end);
int main()
{
  list list1, list2, result(15), list3;
  list::iterator res_end;
  for(int i=0; i < 5; i++) 
     list1.push_back('A'+i);
  for(int i=3; i < 10; i++) 
     list2.push_back('A'+i);
     
  show_range("Contents of list1: ", list1.begin(), list1.end());
  list3.push_back('A');
  list3.push_back('C');
  list3.push_back('D');
  
  if(includes(list1.begin(), list1.end(),list3.begin(), list3.end()))
    cout << "list3 is a subset of list1" << endl;
  else
    cout << "list3 is not a subset of list1" << endl;
  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;
}