/***************************************** * UW User ID: uwuserid * Submitted for ECE 250 * Semester of Submission: (Winter|Spring|Fall) 20NN * * By submitting this file, I affirm that * I am the author of all modifications to * the provided code. *****************************************/ #ifndef DYNAMIC_DEQUE_H #define DYNAMIC_DEQUE_H #include "Exception.h" template class Resizable_deque { public: Resizable_deque( int = 16 ); Resizable_deque( Resizable_deque const & ); Resizable_deque( Resizable_deque && ); ~Resizable_deque(); Type front() const; Type back() const; int size() const; bool empty() const; int capacity() const; void swap( Resizable_deque & ); Resizable_deque &operator=( Resizable_deque const& ); Resizable_deque &operator=( Resizable_deque && ); void push_front( Type const & ); void push_back( Type const & ); void pop_front(); void pop_back(); void clear(); private: // Your member variables // Any private member functions // - helper functions for resizing your array? // Friends template friend std::ostream &operator<<( std::ostream &, Resizable_deque const & ); }; ///////////////////////////////////////////////////////////////////////// // Constructors and Destructors // ///////////////////////////////////////////////////////////////////////// // Constructor template Resizable_deque::Resizable_deque( int n ) // Your initalization list { // Enter your implementation here } // Copy Constructor template Resizable_deque::Resizable_deque( Resizable_deque const &deque ) // Your initalization list { // Enter your implementation here } // Move Constructor template Resizable_deque::Resizable_deque( Resizable_deque &&deque ) // Your initalization list { // Enter your implementation here } // Destructor template Resizable_deque::~Resizable_deque() { // Enter your implementation here } ///////////////////////////////////////////////////////////////////////// // Public Member Functions // ///////////////////////////////////////////////////////////////////////// template int Resizable_deque::size() const { // Enter your implementation here return 0; } template int Resizable_deque::capacity() const { // Enter your implementation here return 0; } template bool Resizable_deque::empty() const { // Enter your implementation here return 0; } template Type Resizable_deque::front() const { // Enter your implementation here return Type(); } template Type Resizable_deque::back() const { // Enter your implementation here return Type(); } template void Resizable_deque::swap( Resizable_deque &deque ) { // Swap the member variables // std::swap( variable, deque.variable ); // Enter your implementation here } template Resizable_deque &Resizable_deque::operator=( Resizable_deque const &rhs ) { // This is done for you... Resizable_deque copy( rhs ); swap( copy ); return *this; } template Resizable_deque &Resizable_deque::operator=( Resizable_deque &&rhs ) { // This is done for you... swap( rhs ); return *this; } template void Resizable_deque::push_front( Type const &obj ) { // Enter your implementation here } template void Resizable_deque::push_back( Type const &obj ) { // Enter your implementation here } template void Resizable_deque::pop_front() { // Enter your implementation here } template void Resizable_deque::pop_back() { // Enter your implementation here } template void Resizable_deque::clear() { // Enter your implementation here } ///////////////////////////////////////////////////////////////////////// // Private member functions // ///////////////////////////////////////////////////////////////////////// // Enter any private member functios (helper functions) here ///////////////////////////////////////////////////////////////////////// // Friends // ///////////////////////////////////////////////////////////////////////// // You can modify this function however you want: it will not be tested template std::ostream &operator<<( std::ostream &out, Resizable_deque const &list ) { out << "not yet implemented"; return out; } #endif