Table 1: deque<T> member functions used in the scanner implementation in Listing 5


Note: These function declarations are not exactly as the
appear in the STL. I have simplified them for presentation
purposes.

bool empty()

- returns true if the deque contains no elements; otherwise
returns false.

iterator begin()

- returns an iterator that refers to the first element in
the deque.

iterator end()

- returns an iterator with the same value that an iterator
has after it has been incremented beyond the end of the
deque.

T &front()

- returns the element from the front of the deque; the
behavior is undefined if the deque is empty.

void pop_front()

- removes the element from the front of the deque; the
behavior is undefined if the deque is empty.

void push_back(const T &e)

- adds element e to the end of the deque.

void push_front(const T &e)

- adds element e to the front of the deque.