# Containers

<#7332#>Container<#7332#> is an abstract base class which is the parent of the following data structure classes: <#7333#>Array<#7333#>, <#7334#>BinaryHeap<#7334#>, <#7335#>BinarySearchTree<#7335#>, <#7336#>DList<#7336#>, <#7337#>List<#7337#>, and <#7338#>RedBlackTree<#7338#>. This hierarchy of containers is useful because certain common operations such as iteration, comparison, and display can be presented to the programmer with a common interface, even though the underlying mechanisms may differ. In fact, the <#7339#>Iterator<#7339#> objects described on page~#sec:iterator#7308> can operate seamlessly on both <#7340#>Containers<#7340#> and <#7341#>Collections<#7341#> (see~#sec:collection#7309>). There are two basic varieties of <#7342#>Container<#7342#>. The first variety is templated only by a key field, and currently contains <#7343#>Array<#7343#>, <#7344#>List<#7344#>, <#7345#>DList<#7345#>, <#7346#>SortedArray<#7346#>, and <#7347#>SortedList<#7347#>. The second variety, dictionaries, are templated by key and information fields. This set of classes currently includes <#7348#>BinaryHeap<#7348#>, <#7349#>BinomialHeap<#7349#>, <#7350#>BinarySearchTree<#7350#>, and <#7351#>RedBlackTree<#7351#>. <#7310#>These dictionary structures have not been tested<#7310#>.