Matthew Heaney, On2 Technologies
Friday June 24th, afternoon
This tutorial provides an overview of the standard container library, describing its design and philosophy and presenting techniques for using the library most effectively. Containers are divided into two main categories: sequence containers, to insert elements at specified positions, and associative containers, which insert elements in order by key. The library includes vectors and lists (from the former category), and hashed and sorted sets and maps (from the latter). All containers have variants to support elements (or keys) that have an indefinite subtype. Containers have various mechanisms (including both active and passive iterators) for designating and accessing container elements.
The standard container library is an important addition to the Ada language, since developers need data structures with semantics more sophisticated than simple arrays or linked lists. For example, one often needs to map an element to some other type (typically String), but an array is not general enough since it only provides support for mapping to a discrete index subtype. The developer also needs abstractions that scale well to large numbers of elements, with specified time behavior. The standard container library solves these kinds of problems, and thus greatly simplifies many programming tasks that would be tedious or just very difficult otherwise. You should attend this tutorial to learn about the standard container library, what features it provides, and how it solves typical programming problems.
Matt is the author of Charles, a container library for Ada closely modeled on the STL. Charles was the basis of the proposal selected by the ARG for the Ada standard container library (described in AI-302). He has given many Ada tutorials on topics that include object-oriented programming, design patterns, and software systems and library design.