Linear data structure with random access. Similar to STL's std::vector class. The main differences are the following.
Associative container class based on an AVL tree structure. Logarithmic cost for access, insert, and delete. Similar to STL's std::map class.
Linear data structures for number types with random access. Functionality as expected from linear algebra, typical operators defined.
There are also the sparse variants SparseVector and SparseMatrix built from AVL trees. Sparse and dense vectors and matrices can arbitrarily be mixed in expressions.
Ordered sets realized as AVL trees. Typical set operators defined.
There is also the Bitset class. Operands from both classes can arbitrarily mixed in expressions. Beware of collateral costs in case of too many implicit conversions though.
This is essentially a SparseMatrix with bool entries. Again based on AVL trees.
Graphs are realized as adjacency lists. Similar to an IncidenceMatrix where the rows columns are indexed by the nodes. By default our graphs are undirected. There is also a directed variant. Node and edge labels of arbitrary type optional.