#include #include #include // // Purpose: test deque template as a FIFO queue // struct event { int t; int x; }; typedef event Event_t; using namespace std; main (int argc, char *argv[]) { int i; deque L; deque E; Event_t myE, *e; char *sptr[4] = { "1", "2", "3", 0 }; deque A; printf ("Test deque iterator (expect 1, 2, 3):\n"); L.push_back(1); L.push_back(2); L.push_back(3); assert(L.size() == 3); assert(L.back() == 3); assert(L.front() == 1); deque::iterator p; for (p = L.begin(); p != L.end(); p++) { printf("\t%d", *p); } printf ("\n\n"); printf ("Test deque pop (expect 1, 2, 3):\n"); for (i=0; i<3; i++) { printf (" pop = %d\n", L.front()); L.pop_front(); } printf ("\n"); printf ("Test deque template (expect 1, 2, 3):\n"); for (i=0; i<3; i++) { myE.t = i; E.push_back(myE); } assert(E.size() == 3); assert(E.back().t == 2); assert(E.front().t == 0); for (i=0; i<3; i++) { myE = E.front(); printf (" pop E.t = %d\n", myE.t); E.pop_front(); } printf ("Test deque template (expect \"1\", \"2\", \"3\"):\n"); A.push_back(sptr[0]); A.push_back(sptr[1]); A.push_back(sptr[2]); assert(A.size() == 3); assert(A.back() == "3"); assert(A.front() == "1"); for (i=0; i<3; i++) { printf (" pop = \"%s\"\n", A.front()); A.pop_front(); } printf ("\n"); }