Deque C++ Tutorial

#include 
#include 
#include 
#include 
using namespace std;
void show(const char *msg, deque dq);
int main()
{
  deque dq, dq2, dq3, dq4;
  dq.push_back("A");
  dq.push_back("B");
  dq.push_back("C");
  dq.push_back("D");
  dq.push_back("E");
  dq.push_back("F.");
  dq2.push_back("G");
  dq2.push_back("H");
  dq2.push_back("I");
  dq3.push_back("J");
  dq3.push_back("K");
  dq3.push_back("L");
  dq4.push_back("M");
  dq4.push_back("N");
  dq4.push_back("O");
  cout << dq.size() << endl;
  show("Original contents of dq:", dq);
  // Use an insert_iterator to insert dq2 into dq.
  copy(dq2.begin(), dq2.end(), inserter(dq, dq.begin()+3));
  cout << "Size of dq after inserting dq2: " << dq.size() << endl;
  show("dq2:", dq);
  // Use a back_insert_iterator to insert dq3 into dq.
  copy(dq3.begin(), dq3.end(), back_inserter(dq));
  cout << "Size of dq after inserting dq3: ";
  cout << dq.size() << endl;
  show("dq3:", dq);
  // Use a front_insert_iterator to insert dq4 into dq.
  copy(dq4.begin(), dq4.end(), front_inserter(dq));
  cout << "Size of dq after inserting dq4: " << dq.size() << endl;
  show("dq4:", dq);
  return 0;
}
void show(const char *msg, deque dq) {
  cout << msg << endl;
  for(unsigned i=0; i < dq.size(); ++i)
    cout << dq[i] << endl;
}