adding new constants
adding support for custom allocators
defining new constants
adding the option to specify the expansion factor
changing the way the iterator is initializd
changing a the defines to typedefs
removing typedefs
changing ints to size_t