14 #ifndef DOUBLE_LINKED_LIST_H
15 #define DOUBLE_LINKED_LIST_H
21 #ifndef DOUBLE_LINKED_LIST_IMPL_H
Implementations of longer template methods of the DoubleLinkedList.h file.
Implementation details of a DoubleLinkedList.
DoubleLinkedList which can be iterated via DoubleLinkedList::iterator.
void clear()
Remove all data from this list.
Experiment::Iterator< value_type, DoubleLinkedList< value_type >, Node > iterator
Convenience typedef of iterators of this list.
void push_back(const value_type &value)
Insert value as the last item in this list.
void notifyItersSwapOccurred(Node *a, Node *b) const
Notify all iterators that a swap occurred of nodes a and b so that they can update themselves to keep...
DoubleLinkedList()
Create a new list.
void addIterator(iterator *iter)
Record that iter has been created as an iterator of this list.
void notifyItersInsertedBefore(int count, Node *firstAfter) const
Notify all iterators that count Nodes were inserted before firstAfter.
void removeIterator(iterator *iter)
Record that iter that is being destroyed as an iterator of this list.
void push_front(const value_type &value)
Insert value as the first item in this list and udpate iterators to remain at same position.
void notifyItersRemovedBefore(int count, Node *firstAfter) const
Notify all iterators that count Nodes were removed before firstAfter.
T value_type
Convenience typedef of the type of values in this list.
~DoubleLinkedList()
Destroy a list.
DoubleLinkedList internal Node holding Data.
DoubleLinkedList internal Node base class.
Iterator class that works genericly on a List containing Node elements with data of type T.
This file is to be included at the end of Iterator.h.