#include <deque>
#include <iostream>
using namespace std;
typedef deque<char> 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;
}