Please fix my errors class Iterator { public: /// Constructor taking a head and tail pointer; YOU'RE WELCOME Iterator(Node<T> *head, Node<T> *tail) : head_(head), tail_(tail) { cursor_ = end(); } /// Constructor taking a head, tail, and cursor pointer; YOU'RE WELCOME Iterator(Node<T> *head, Node<T> *tail, Node<T> *cursor) : head_(head), tail_(tail), cursor_(cursor) {} /// Get a pointer to the head node, or end() if this list is empty Node<T> *begin() { return head_; } /// Get a node pointer representing "end" (aka "depleted"). Probably want to just use nullptr. Node<T> *end() { return nullptr; } /// Get the node to which this iterator is currently pointing Node<T> *getCursor() { return cursor_; } /** * Assignment operator * Return a copy of this Iterator, after modification */ Iterator &operator=(const Iterator &other) { head_ = other.head_; tail_ = other.tail_; cursor_ = other.cursor_; return *this; } /** * Comparison operator * Returns true if this iterator is equal to the other iterator, false otherwise */ bool operator==(const Iterator &other) { return cursor_ == other.cursor_; } /** * Inequality comparison operator * Returns true if this iterator is not equal to the other iterator, false otherwise */ bool operator!=(const Iterator &other) { return !(*this == other); } /** * Prefix increment operator * Return a copy of this Iterator, after modification */ Iterator &operator++() { cursor_ = cursor_->getNext(); return *this; } /*** Postfix increment * Return a copy of this Iterator, BEFORE it was modified */ Iterator operator++(int) { Iterator copy(*this); ++(*this); return copy; } /*** Prefix decrement operator * Return a copy of this Iterator, after modification */ Iterator &operator--() { cursor_ = cursor_->getPrev(); return *this; } /** * Postfix decrement operator * Return a copy of this Iterator BEFORE it was modified */ Iterator operator--(int) { Iterator copy = *this; --(*this); return copy; } /** * AdditionAssignment operator * Return a copy of the current iterator, after modification */ Iterator operator+=(size_t add) { for (size_t i = 0; i < add && cursor_ != nullptr; ++i) { cursor_ = cursor_->getNext(); } return *this; } /** * SubtractionAssignment operator * Return a copy of the current iterator, after modification */ Iterator operator-=(size_t sub) { for (size_t i = 0; i < sub && cursor_ != nullptr; ++i) { cursor_ = cursor_->getPrev(); } return *this; } /** * AdditionAssignment operator, supporting positive or negative ints */ Iterator operator+=(int add) { if (add > 0) { for (int i = 0; i < add && cursor_ != nullptr; ++i) { cursor_ = cursor_->getNext(); } } else { for (int i = 0; i > add && cursor_->getPrev() != nullptr; --i) { cursor_ = cursor_->getPrev(); } } return *this; } /** * SubtractionAssignment operator, supporting positive or negative ints */ Iterator operator-=(int subtract) { // This function adds an integer to the current iterators position in the list, if (subtract > 0) { for (int i = 0; i < subtract && cursor_.