Mercurial > Algorithms__Sedgewick
annotate algs4-c++/src/ResizingArrayDeque.cpp @ 27:80ca1973e3bd
Fleshed out Queue::generic_iterator a bit more to make it a more or less complete example of implmenting an iterator.
author | Eris Caffee <discordia@eldalin.com> |
---|---|
date | Tue, 23 Jun 2015 17:14:09 -0500 |
parents | 2f87e582d91a |
children |
rev | line source |
---|---|
discordia@18 | 1 // g++ -std=c++11 ResizingArrayDeque.cpp |
discordia@14 | 2 |
discordia@14 | 3 |
discordia@14 | 4 #include "ResizingArrayDeque.hpp" |
discordia@14 | 5 |
discordia@14 | 6 #include <iostream> |
discordia@14 | 7 |
discordia@14 | 8 int main ( int argc, char **argv ) { |
discordia@14 | 9 |
discordia@14 | 10 ResizingArrayDeque<long> deque; |
discordia@14 | 11 bool left = true; |
discordia@14 | 12 |
discordia@14 | 13 long i; |
discordia@14 | 14 while ( ! std::cin.eof() ) { |
discordia@14 | 15 std::cin >> i; |
discordia@14 | 16 if ( std::cin.good() ) { |
discordia@14 | 17 if ( left ) { |
discordia@14 | 18 deque.push_left(i); |
discordia@14 | 19 left = false; |
discordia@14 | 20 } |
discordia@14 | 21 else { |
discordia@14 | 22 deque.push_right(i); |
discordia@14 | 23 left = true; |
discordia@14 | 24 } |
discordia@14 | 25 } |
discordia@14 | 26 } |
discordia@14 | 27 |
discordia@14 | 28 std::cout << "Deque has " << deque.size() << " entries." << std::endl; |
discordia@14 | 29 |
discordia@14 | 30 for ( auto iter = deque.begin(); iter != deque.end(); ++iter ) { |
discordia@14 | 31 std::cout << *iter << std::endl; |
discordia@14 | 32 } |
discordia@14 | 33 |
discordia@14 | 34 std::cout << "Popping entries..." << std::endl; |
discordia@14 | 35 |
discordia@14 | 36 left = true; |
discordia@14 | 37 while ( ! deque.is_empty() ) { |
discordia@14 | 38 if ( left ) { |
discordia@14 | 39 i = deque.pop_left(); |
discordia@14 | 40 left = false; |
discordia@14 | 41 } |
discordia@14 | 42 else { |
discordia@14 | 43 i = deque.pop_right(); |
discordia@14 | 44 left = true; |
discordia@14 | 45 } |
discordia@14 | 46 std::cout << i << std::endl; |
discordia@14 | 47 } |
discordia@14 | 48 |
discordia@14 | 49 std::cout << "Deque has " << deque.size() << " entries." << std::endl; |
discordia@14 | 50 |
discordia@14 | 51 } |
discordia@14 | 52 |