Intrusive Containers
|
Files | |
file | DListIn.h |
Intrusive Double Linked List. | |
file | DListIn.hpp |
Intrusive Double Linked List, Implementation. | |
file | ListIn.h |
Intrusive Singly Linked List. | |
file | ListIn.hpp |
Intrusive Singly Linked List, Implementation. | |
file | TreeIn.h |
Intrusive Binary Tree (unbalenced). | |
file | TreeIn.hpp |
Intrusive Binary Tree (unbalenced), Implementation. | |
Classes | |
class | DListInRoot< R, N, n > |
class | DListInNode< R, N, n > |
class | ListInRoot< R, N, n > |
class | ListInNode< R, N, n > |
class | TreeInRoot< R, N, K, n > |
class | TreeInNode< R, N, K, n > |
The Intrusive Container Collection provides a set of containers that provide 1:many mappings from a "Containing" class to a "Node" class. This library assumes that the classes are "Identity" based (as opposed to "Value" based). It also provides a bi-directional mapping where the Node know what container it is in.
To use this library the Contianing class (called the Root) and the Node class must each derive from a class templates like xxxRoot<> and xxxNode<> repectfully (xxx will be replaced with the name of the container type). The templates will have two or three parameters. The first is the type of the Root class, the second is the type of the Node class, and the third is an optional number to allow a given Root-Node pair to have multiple relations of the same type, and have unique base types to perform these actions.