An unordered_map is an unordered associative container that
supports unique keys (an unordered_map contains at most one of each
key value) and that associates values of another type
mapped_type with the keys.
The unordered_map class
supports forward iterators.
It provides the operations described in the preceding requirements table for unique keys;
that is, an unordered_map supports the a_uniq operations in that table,
not the a_eq operations.
For an unordered_map<Key, T> the key_type is Key,
the mapped_type is T,
and the value_type is pair<const Key, T>.
Subclause [unord.map] only describes operations on unordered_map that
are not described in one of the requirement tables, or for which there
is additional semantic information.