Hashed Associative Containers

The Standard Template Library (STL) provides only one type of associative container–the sorted associative container. The STL sorted associative containers are map, multimap, set, and multiset. However, there is another type of associative container: the hashed associative container. This container should really be in the Standard Template Library but isn’t there because it was proposed too late to be included in the ANSI/ISO Standard. The difference between a sorted associative container and a hashed associative container is that the former keeps the keys sorted according to some total order. For example, in a map, the elements are sorted according to the lexicographical order of the strings. A hashed associative container, on the other hand, divides the keys into a number of subsets, and the association of each key to its subset is done by a hash function. Consequently, searching a key is confined to its subset rather than the entire key space. Searching a hashed associative container can therefore be faster than searching a sorted associative container under some circumstances; but unlike sorted associative containers, the performance is less predictable. Some vendors already include hashed associative containers in their STL implementation as an extension, and it is likely that these containers will be added to the Standard in the next revision phase.

Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

Recent Articles: