Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Home » Tip Bank » C++
Language: C++
Expertise: Advanced
Jun 1, 1999



Building the Right Environment to Support AI, Machine Learning and Deep Learning

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<string, int>, 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.
Danny Kalev
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date