#ifndef DEQUE_HPP #define DEQUE_HPP #include #include template class Deque { public: class iterator; Deque(std::size_t chunk_size = 100) : chunk_size_(chunk_size), size_(0) {} // TODO: implement operator[], begin(), end(), push_back() private: std::size_t chunk_size_; std::size_t size_; std::vector> chunks_; }; template class Deque::iterator { public: iterator(Deque& deque, std::size_t i) : deque_(deque), i_(i) {} // TODO: methods of a typical iterator (operator*, operator++, operator==, operator!=) iterator& operator++(); // pre-increment iterator operator++(int); // post-increment (int is a dummy parameter) private: Deque& deque_; std::size_t i_; }; #endif // DEQUE_HPP