Over the years I've had to create various structures that seem to be common across projects. So I decided to pull them out into their own library. Much of the development of this library was a direct result of Blaze Game Engine in it's various stages, however this also came about due to a frustration with c++'s standard libraries: the clumsyness with which they implemented the interface for algorithms, and the complete lack of inextensibility. This library includes implementations of the following:
This structure implements a dynamically allocated array and its iterators. Insertion and deletion is handled through the iterators, but there are also some basic insertion and deletion functions in the array structure itself.
This implements a linked list and its iterators. Once again, insertion and deletion is handled by the iterators.
Map is an extension of list that provides a very basic key-value interface.
String is an extension of array that adds many nice search and replace procedures. It also adds easy conversion from string to other data types.
This implements a reference structure whose interface is the same as the underlying structure. This allows me to return modifiable sub matricies in the matrix structure, among other things.
This builds on the string implementation to provide a good file interface, including support for stdout, stdin, and stderr.
Just a basic implementation for a pair. Needed it for the map interface.
Vector implementation that also implements all of the operators that go with it.
Matrix implementation that also implements most of the operators that go with it. This is still a work in progress...
An interface for polynomials. This is the beginning of an implementation for Flex Graphics Library.
A simplex noise implementation. Mostly used in Blaze Game Engine to generate terrain.
Implements a complex number and all of the operators that go with it.
This is just a c++ wrapper for gmp.