view algs4-c++/src/Queue.cpp @ 24:028689700a47

Updated Queue to have a const_iterator too and to support a copy constructor (problem 1.3.41
author Eris Caffee <discordia@eldalin.com>
date Tue, 23 Jun 2015 14:52:17 -0500
parents eb159ea69f33
children 80ca1973e3bd
line source
1 // g++ -std=c++11 Queue.cpp
4 #include <iostream>
6 #include "Queue.hpp"
8 int main ( int argc, char **argv ) {
10 Queue<long> queue;
12 long i;
13 while ( ! std::cin.eof() ) {
14 std::cin >> i;
15 if ( std::cin.good() )
16 if ( i >= 0 )
17 queue.enqueue(i);
18 else
19 queue.dequeue();
20 }
22 std::cout << "Queue has " << queue.size() << " entries." << std::endl;
24 for ( auto iter = queue.begin(); iter != queue.end(); ++iter ) {
25 std::cout << *iter << std::endl;
26 }
28 Queue<long> q2( queue );
29 std::cout << "Copied queue to q2. q2 has " << q2.size() << " entries." << std::endl;
30 for ( auto iter = q2.begin(); iter != q2.end(); ++iter ) {
31 std::cout << *iter << std::endl;
32 }
35 std::cout << "Dequeuing entries..." << std::endl;
37 while ( ! queue.is_empty() ) {
38 i = queue.dequeue();
39 std::cout << i << std::endl;
40 }
42 std::cout << "Queue has " << queue.size() << " entries." << std::endl;
45 // Silently empty q2 to avoid the assertion in the destructor.
46 while ( ! q2.is_empty() )
47 q2.dequeue();
48 }