Charles: A Data Structure Library for Ada95

Charles is a container library for Ada95, modelled closely on the C++ STL [1,2,3,4]. Sequence containers (vectors, deques, and lists) store unordered elements, inserted at specified positions. Associative containers (sets and maps) order elements according to a key associated with each element; both sorted (tree-based) and hashed containers are provided. A separate iterator type [5,6] associated with each container is used to visit container items and to allow elements to be modified directly. Charles is flexible and efficient, and its design has been guided by the philosophy that a library should stay out of the programmer's way. Charles is for getting your work done.