annotate algs4-c++/src/RandomQueue.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
children
rev   line source
discordia@19 1 // g++ -std=c++11 RandomQueue.cpp
discordia@19 2
discordia@19 3 #include <iostream>
discordia@19 4
discordia@19 5 #include "RandomQueue.hpp"
discordia@19 6
discordia@19 7 int main ( int argc, char **argv ) {
discordia@19 8
discordia@19 9 RandomQueue<long> q;
discordia@19 10
discordia@19 11 long i;
discordia@19 12 while ( ! std::cin.eof() ) {
discordia@19 13 std::cin >> i;
discordia@19 14 if ( std::cin.good() ) {
discordia@19 15 q.enqueue(i);
discordia@19 16 }
discordia@19 17 }
discordia@19 18
discordia@19 19 std::cout << "RandomQueue has " << q.size() << " entries." << std::endl;
discordia@19 20
discordia@19 21 for ( auto iter = q.begin(); iter != q.end(); ++iter ) {
discordia@19 22 std::cout << *iter << std::endl;
discordia@19 23 }
discordia@19 24
discordia@19 25 std::cout << "Sampling entries." << std::endl;
discordia@19 26
discordia@19 27 for ( int i; i < q.size(); ++i ) {
discordia@19 28 std::cout << q.sample() << std::endl;
discordia@19 29 }
discordia@19 30
discordia@19 31 std::cout << "Removing entries entries..." << std::endl;
discordia@19 32
discordia@19 33 while ( ! q.is_empty() ) {
discordia@19 34 i = q.dequeue();
discordia@19 35 std::cout << i << std::endl;
discordia@19 36 }
discordia@19 37
discordia@19 38 std::cout << "Q has " << q.size() << " entries." << std::endl;
discordia@19 39
discordia@19 40 }
discordia@19 41