Deque C++ Tutorial

#include 
#include 
using namespace std;
typedef deque CHARDEQUE;
void print_contents(CHARDEQUE deque, char*);
int main(void){
   CHARDEQUE  a;  
   if(a.empty())  
     cout << "a is empty" << endl;
   else
     cout << "a is not empty" << endl;
   a.push_back('A');
   a.push_back('B');
   a.push_back('C');
   a.push_back('D');
   if(a.empty())  
       cout << "a is empty" << endl;
   else
       cout << "a is not empty" << endl;
   print_contents(a,"a");      
   cout << "The first element of a is  " << a[0] << endl;
   cout << "The first element of a is  " << a.at(0) << endl;
   cout << "The last element of a is  " << a[a.size()-1] << endl;
   cout << "The last element of a is  " << a.at(a.size()-1) << endl;
}
void print_contents(CHARDEQUE deque, char *name){
   CHARDEQUE::iterator pdeque;
   cout << "The contents of "<< name << " : ";
   for(pdeque = deque.begin(); pdeque != deque.end(); pdeque++)
     cout << *pdeque <<" ";
   cout << endl;
}