Associative Containers
Associative containers are containers that allow for the fast lookup of elements. Additionally, the elements are always kept in a sorted order. The order is determined by the value of the element and a comparison function. The comparison function is called a comparator, and by default this is the operator<, although the user can supply a Functor (function object) as a parameter to specify how the elements should be compared. The <functional> header contains many such objects that can be used to sort the associative containers, like std::less or std::less.
Typically, associative containers are implemented as variations of binary trees, providing fast element lookup by exploiting the logarithmic complexity of the underlying structure.
Set and Multiset
A Set is a container that contains a unique group of sorted elements. A Multiset is similar to Set, but it allows duplicate elements: